این صفحه فهرست جامعی از آزمایشهای تحت «مجموعه آزمایش تصویر دوربین» (ITS) را ارائه میدهد که بخشی از «تأییدکننده مجموعه آزمایش سازگاری Android» (CTS) است. آزمایشهای ITS آزمایشهای کارکردی هستند، یعنی کیفیت تصویر را اندازهگیری نمیکنند، بلکه بررسی میکنند که همه عملکردهای تبلیغشده دوربین طبق انتظار کار میکنند یا نه. این سند به توسعهدهندگان و آزمایشکنندگان کمک میکند تا بفهمند آزمایشهای فردی چه کاری انجام میدهند و چگونه میتوانند خرابیهای آزمایش را اشکالزدایی کنند.
آزمایشهای ITS با هر نسخه Android بهروزرسانی یا اضافه میشوند، همانطور که در یادداشتهای انتشار Camera ITS برای آن نسخه Android بهطور مفصل شرح داده شده است. بهروزرسانیها براساس اشکالات گزارششده توسط کاربر یا توسعهدهنده انجام میشود. موارد اضافهشده براساس اشکالهای گزارششده ازسوی کاربر یا توسعهدهنده و درستیسنجی رفتار صحیح ویژگیهای چارچوب دوربین جدید است.
در Android 17 و نسخههای بالاتر، آزمایشهای Camera ITS
در «تأییدکننده CTS» به دو فعالیت تقسیم میشوند تا امکان اجرای موازی فراهم شود و
زمان آزمایش کاهش یابد: یک فعالیت برای آزمایشهای feature_combination و sensor_fusion،
و فعالیت دیگر برای همه آزمایشهای دیگر. برای اطلاعات بیشتر، به
کاهش زمان آزمایش مراجعه کنید.
Camera ITS آزمایشها را براساس ویژگیهای لازم دوربین، سطح API، و
سطح کلاس عملکرد رسانه (MPC) فیلتر میکند. برای سطح میانای برنامهسازی کاربردی، ITS از
ro.product.first_api_level برای آزمایشهای دروازهای استفاده میکند که در سطح میانای برنامهسازی کاربردی خاصی اضافه شدهاند که
تجربههای کاربری منفی را برای عملکرد در سطوح میانای برنامهسازی کاربردی پایینتر آزمایش میکنند. ITS
از ro.vendor.api_level برای آزمایشهای دروازهای برای ویژگیهای اضافهشده در سطح API خاصی
که به قابلیت سختافزاری جدید نیاز دارد استفاده میکند. اگر
ro.odm.build.media_performance_class برای دستگاهی تعریف شده باشد،
ITS نیاز دارد که آزمایشهای خاصی بسته به سطح MPC اجرا شود.
آزمایشها براساس صحنه در بخشهای زیر گروهبندی شدهاند:
صحنههای آزمایشی مبتنی بر رایانه لوحی
scene0: ضبط فراداده، لرزش، ژیروسکوپ، ارتعاشscene1: نوردهی، حساسیت، جبران مقدار نوردهی (EV)، YUV درمقابل JPEG و RAWscene2: تشخیص چهره، آزمایشهایی که به صحنههای رنگی نیاز دارندscene3: بهسازی کنارهها، حرکت لنزscene4: نسبت ابعادی، برش، میدان دیدscene6: بزرگنماییscene7: کلید چنددوربینهscene8: نوردهی خودکار (AE) و تراز سفیدی خودکار (AWB) نورسنجی منطقهایscene9: فشردهسازی JPEGscene_extensions: افزونههای دوربینscene_tele: تعویض لنز تلهفوتوscene_video: افت فریم
صحنههای آزمایشی مبتنی بر sensor_fusion / دکل Gen2
feature_combination: ترکیب ویژگیهاscene_flash: فلاش خودکار، حداقل نرخ فریمscene_gen2_chart: آزمایشها بااستفاده از نمودار کاغذی Gen2scene_ip: برابری تصویر بین برنامه دوربین پیشفرض و برنامه Jetpack Camera (JCA)sensor_fusion: انحراف زمانبندی دوربین و ژیروسکوپ
صحنه آزمایشی مبتنی بر پخشکننده
scene5: سایهزنی لنز
صحنه آزمایشی مبتنی بر رایانه لوحی با گاموت گسترده
scene_wide_gamut: نمایه و محدوده رنگی با گاموت گسترده
برای شرح هر صحنه، بخشهای جداگانه را ببینید.
صحنههای آزمایش مبتنی بر رایانه لوحی
صحنه۰
آزمایشها به اطلاعات صحنه خاصی نیاز ندارند. اما برای آزمایش لرزش و ژیروسکوپ، تلفن باید ثابت باشد.
test_jitter
لرزش را در مُهرهای زمان دوربین اندازهگیری میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
قبول: حداقل ۳۰ میلیثانیه دلتا بین فریمها وجود دارد.
در شکل زیر، به محدوده کوچک محور y توجه کنید. لرزش در این نمودار واقعاً کم است.
شکل ۱. نمودار test_jitter.
test_metadata
اعتبار ورودیهای فراداده را با بررسی نتایج ضبط و اشیای مشخصات دوربین آزمایش میکند. این آزمایش از مقادیر نوردهی و بهره
auto_capture_request استفاده میکند چون محتوای تصویر
مهم نیست. این یک آزمایش «شکست سریع» است زیرا در مدت کوتاهی اجرا میشود، به حداقل راهاندازی نیاز دارد، و نشاندهنده تعداد قابلتوجهی از آزمایشهای ناموفق در مراحل بعدی است.
تا زمانی که test_metadata «قبول» نشده است، نباید کل مجموعه آزمون اجرا شود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
قبول: سطح سختافزار، برچسبهای rollingShutterSkew، frameDuration،
timestampSource، croppingType، blackLevelPattern، pixel_pitch،
میدان دید (FoV)، و فاصله هایپرفوکال وجود دارند و مقادیر معتبری دارند.
test_request_capture_match
آزمایش میکند که دستگاه با بازخوانی فراداده ضبط، مقادیر صحیح نوردهی و بهره را مینویسد. این یک آزمایش «سریع-ناموفق» است زیرا به حداقل راهاندازی نیاز دارد و نشاندهنده تعداد قابلتوجهی از آزمایشهای ناموفق در مراحل بعدی است.
تا زمانی که test_request_capture_match
«قبول» نشده است، نباید کل مجموعه آزمون اجرا شود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
قبول: مقادیر فراداده درخواست و ضبط در همه نماها مطابقت دارد.
test_sensor_events
برای دستگاههایی که پشتیبانی از ادغام حسگر را تبلیغ میکنند، این آزمایش بررسی میکند که آیا
دستگاه رویدادهای حسگر را جستجو و چاپ میکند یا نه. حسگرهای موردانتظار عبارتاند از
شتابسنج، ژیروسکوپ، و مغناطیسسنج. این آزمایش فقط زمانی کار میکند که صفحهنمایش
روشن باشد، یعنی دستگاه در حالت آمادهبهکار نباشد. این یک آزمایش «شکست سریع» است
که در مدت کوتاهی اجرا میشود، به حداقل راهاندازی نیاز دارد، و نشان میدهد که آزمایش
ادغام حسگر در مراحل بعدی ناموفق بوده است. آزمایشهای صحنه sensor_fusion نباید اجرا شود
مگر اینکه test_sensor_events «قبول» یا «ردشدن» باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: رویدادهای هر حسگر دریافت میشود.
test_solid_color_test_pattern
آزمایش میکند که الگوهای آزمایشی رنگ ثابت بهدرستی برای بیصدا کردن دوربین تولید میشوند. اگر بیصدا کردن دوربین پشتیبانی میشود، الگوهای آزمایشی رنگ ثابت باید پشتیبانی شود. اگر بیصدا کردن دوربین پشتیبانی نشود، الگوهای آزمایشی رنگ ثابت فقط درصورتی آزمایش میشوند که این قابلیت تبلیغ شده باشد.
اگر تصاویر خام پشتیبانی شود، تخصیص رنگ نیز آزمایش میشود. رنگهای آزمایششده عبارتاند از سیاه، سفید، قرمز، آبی، و سبز. برای دوربینهایی که از تصاویر خام پشتیبانی نمیکنند، فقط رنگ سیاه آزمایش میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
قبول: الگوهای آزمایشی یکدست پشتیبانیشده رنگ درستی دارند و واریانس کمی در تصویر وجود دارد.
test_test_pattern
پارامتر android.sensor.testPatternMode را آزمایش میکند تا
قابها را برای هر الگوی آزمایش معتبر ضبط کند و بررسی میکند که قابها
بهدرستی برای رنگهای یکدست و نوارهای رنگی تولید شده باشند. این آزمایش شامل
مراحل زیر است:
- تصاویر را برای همه الگوهای آزمایشی پشتیبانیشده ضبط میکند.
- بررسی درستی را برای الگوی آزمایش رنگ ثابت و نوارهای رنگی انجام میدهد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
قبول: الگوهای آزمایشی پشتیبانیشده بهدرستی تولید میشوند.
شکل ۲. نمونه test_test_patterns.
test_tonemap_curve
تبدیل الگوی آزمایشی از خام به YUV را با نگاشت رنگ خطی آزمایش میکند. این آزمایش
به android.sensor.testPatternMode = 2 (COLOR_BARS) نیاز دارد تا
الگوی تصویر بینقصی برای تبدیل نگاشت رنگمایه تولید کند. تأیید میکند که خط لوله دارای
خروجیهای رنگی مناسب با نگاشت رنگ خطی و ورودی تصویر ایدهآل است (به
test_test_patterns متکی است).
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
قبول: YUV و RAW شبیه یکدیگر هستند.
شکل ۳. نمونه خام test_tonemap_curve.
شکل ۴. نمونه test_tonemap_curve YUV.
test_unified_timestamp
آزمایش میکند که آیا رویدادهای حسگر تصویر و حرکت در یک دامنه زمانی هستند یا نه. این یک آزمایش
سریع-ناموفق است زیرا در مدت کوتاهی اجرا میشود، به حداقل راهاندازی نیاز دارد، و
ناموفق بودن آزمایش ادغام حسگر را در پاییندست نشان میدهد. آزمایشهای صحنه sensor_fusion نباید اجرا شود مگراینکه test_unified_timestamp «قبول» یا «ردشده» باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
قبول: مُهرهای زمان حرکت بین دو مُهر زمان تصویر قرار دارد.
test_vibration_restriction
آزمایش میکند که آیا لرزش دستگاه طبق انتظار عمل میکند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
قبول: وقتی دستگاه توسط میانای برنامهسازی کاربردی محدودیت صدای دوربین بیصدا میشود، نمیلرزد.
scene1_1
scene1 نموداری خاکستری است. نمودار خاکستری باید ۳۰٪ مرکزی میدان دید دوربین را پوشش دهد. انتظار میرود نمودار خاکستری 3A (نوردهی خودکار،
تراز سفیدی خودکار، و فوکوس خودکار) را بهطور متوسط بهچالش بکشد زیرا منطقه مرکزی هیچ ویژگیای ندارد.
بااینحال، درخواست ضبط کل صحنه را مشخص میکند که شامل
ویژگیهای کافی برای همگرایی 3A است.
دوربینهای RFoV را میتوان در دکل آزمایشی WFoV یا RFoV آزمایش کرد. اگر دوربین RFoV در دکل آزمایشی WFoV آزمایش شود، نمودار بهاندازه ۲/۳ مقیاسبندی میشود تا برخیاز مرزهای نمودار خاکستری در FoV مشخص شود و به همگرایی 3A کمک کند. برای توضیحات دقیقتر درباره دکلهای آزمایش دوربین، به Camera ITS-in-a-box مراجعه کنید.
شکل ۵. نمودار scene1 با اندازه کامل (چپ)، نمودار با مقیاس ۲/۳ (راست).
test_ae_precapture_trigger
هنگام استفاده از راهانداز پیشضبط، ماشین حالت AE را آزمایش میکند. پنج درخواست دستی را با AE غیرفعال ضبط میکند. درخواست آخر دارای راهانداز پیشضبط نوردهی خودکار است، که باید نادیده گرفته شود زیرا نوردهی خودکار غیرفعال است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
قبول: AE همگرا میشود.
test_auto_vs_manual
آزمایشهایی که نشان داد عکسهای خودکار و دستی یکسان بهنظر میرسند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
قبول: بهرههای تعادل سفیدی غیرخودکار و تبدیل گزارششده در هر نتیجه ضبط با estimate تعادل سفیدی خودکار از الگوریتم 3A دوربین مطابقت دارد.
شکل ۶. نمونه خودکار test_auto_vs_manual.
شکل ۷. نمونه تعادل سفیدی test_auto_vs_manual.
شکل ۸. نمونه تبدیل تعادل سفیدی غیرخودکار test_auto_vs_manual.
test_black_white
آزمایش میکند که دستگاه تصاویر کاملاً سیاه و سفید تولید میکند. دو عکس میگیرد، اولی با بهره بسیار کم و نوردهی کوتاه که منجر به عکس سیاه میشود، و دومی با بهره بسیار زیاد و نوردهی طولانی که منجر به عکس سفید میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
مجوز: تصاویر سیاهوسفید تولید میکند. کانالهای اشباعشده تصاویر سفید دارای مقادیر RGB [۲۵۵، ۲۵۵، ۲۵۵] با حاشیه خطای کمتر از ۱٪ تفاوت هستند.
شکل ۹. test_black_white، نمونه سیاه.
شکل ۱۰. test_black_white، نمونه سفید.
شکل ۱۱. test_black_white، نمودار میانگین نمونه.
test_burst_capture
تأیید میکند که کل خط لوله ضبط میتواند با سرعت ضبط اندازه کامل و زمان واحد پردازش مرکزی همگام باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: رگباری از تصاویر اندازه کامل میگیرد، افت فریم و روشنایی تصویر را بررسی میکند.
test_burst_sameness_manual
۵ رگبار ۵۰ تصویری با تنظیمات ضبط دستی میگیرد و بررسی میکند که همه آنها یکسان باشند. از این آزمایش برای شناسایی فریمهای پراکنده که بهطور متفاوت پردازش میشوند یا دارای آرتیفکت هستند استفاده کنید.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORandroid.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
قبول: تصاویر ازنظر بصری و مقادیر RGB یکسان هستند.
رد شدن: در ابتدای هر رگبار، جهش یا افت در نمودار میانگین RGB نشان میدهد
- انعطافپذیری برای
first_API_level< ۳۰، ۳٪ است - انعطافپذیری برای
first_API_level>= ۳۰، ۲٪ است
شکل ۱۲. نمونه میانگین test_burst_sameness_manual.
شکل ۱۳. test_burst_sameness_manual_plot_means
test_crop_region_raw
آزمایش میکند که جاریسازیهای RAW قابلبرش نباشند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
قبول: تصاویر YUV از مرکز برش داده میشوند اما تصاویر RAW نه.
شکل ۱۴. نمونه برش خام comp test_crop_region_raw.
شکل ۱۵. نمونه کامل test_crop_region_raw comp raw.
شکل ۱۶. نمونه برش YUV از comp test_crop_region_raw.
شکل ۱۷. نمونه کامل test_crop_region_raw YUV.
test_crop_regions
آزمایش میکند که مناطق برش کار میکنند. تصویر کاملی را میگیرد و تکههایی از پنج ناحیه مختلف (گوشهها و مرکز) ایجاد میکند. تصاویری با برش تنظیمشده برای پنج منطقه میگیرد. مقادیر تصویر وصله و برش را مقایسه میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
قبول: تصویر ناحیه برشخورده با وصلهای که با تصویر برشخورده مطابقت دارد همخوانی دارد.
test_ev_compensation
آزمایش میکند که جبران مقدار نوردهی (EV) اعمال شده باشد. این آزمون شامل یک بخش پایه و یک بخش پیشرفته است.
بخش پایه آزمایش میکند که جبران نوردهی بااستفاده از محدودهای که با CONTROL_AE_COMPENSATION_STEP ایجاد شده است اعمال میشود. در هر مقدار جبران، هشت فریم ضبط میشود.
بخش پیشرفته نوردهی را در هشت مرحله افزایش میدهد و روشنایی اندازهگیریشده را با روشنایی موردانتظار مقایسه میکند. مقادیر موردانتظار از روشنایی تصویر بدون اعمال جبران EV محاسبه میشود و اگر مقادیر محاسبهشده از محدوده مقدار واقعی تصویر فراتر رود، مقدار موردانتظار اشباع میشود. اگر مقادیر موردانتظار و مقادیر اندازهگیریشده مطابقت نداشته باشند یا اگر تصاویر در پنج مرحله نوردهی بیشازحد داشته باشند، آزمایش ناموفق است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
قبولی در بخش پایه: تصاویر افزایش نوردهی را بدون نوردهی بیشازحد در پنج مرحله نشان میدهند.
شکل ۱۸. test_ev_compensation_basic.
قبولی در بخش پیشرفته: افزایش در لومینانس را با افزایش تنظیم جبران EV ثبت میکند. هشت فریم ضبطشده برای هر تنظیم جبران نوردهی دارای مقادیر لومای پایدار هستند.
شکل ۱۹. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
آزمایشهایی که با تغییر ISO و زمان نوردهی، نوردهی ثابتی بهدست میآید. مجموعهای از عکسها را میگیرد که ISO و زمان نوردهی آنها برای ایجاد تعادل با یکدیگر انتخاب شدهاند.
نتایج باید روشنایی یکسانی داشته باشند، اما درطول توالی، تصویر باید
نویز بیشتری داشته باشد. تأیید میکند که مقادیر میانگین پیکسل نمونه به یکدیگر نزدیک هستند. تأیید میکند که تصاویر به ۰ یا ۱ محدود نشده باشند (که باعث میشود شبیه خطوط صاف بهنظر برسند). این آزمایش را میتوان با تصاویر RAW نیز اجرا کرد. برای این کار، پرچم debug را در فایل پیکربندیتان تنظیم کنید.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
قبول: تصاویر روشنایی یکسانی دارند، اما با ISO بالاتر نویز بیشتری دارند. وقتی مقدار ISO*نوردهی در فضای بهره آزمایششده ثابت باشد، صفحههای RGB تخت هستند.
مکانیزم خرابی: در شکل زیر، با افزایش مقادیر ضریب بهره (محور x)، مقادیر میانگین صفحه RGB نرمالشده (محور y) شروع به انحراف از مقادیر ضریب بهره پایین میکنند.
شکل ۲۰. test_exposure_plot_means.
شکل ۲۱. test_exposure_mult=1.00.
شکل ۲۲. test_exposure_mult=64.00.
test_latching
آزمایش میکند که تنظیمات (نوردهی و بهره) در قاب مناسب برای دوربینهای FULL و LEVEL_3 قفل شود. بااستفاده از درخواستهای پشتسرهم، مجموعهای از عکسها را میگیرد و پارامترهای درخواست ضبط را بین عکسها تغییر میدهد. بررسی میکند که تصاویر
ویژگیهای موردانتظار را داشته باشند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: تصاویر [۲، ۳، ۶، ۸، ۱۰، ۱۲، ۱۳] دارای ISO یا نوردهی افزایشیافته هستند و با میانگین RGB بالاتر در نمودار شکل زیر نشان داده شدهاند.
شکل ۲۳. نمونه میانگین نمودار test_latching.
شکل ۲۴. test_latching i=00.
شکل ۲۵. test_latching i=01.
شکل ۲۶. test_latching i=02.
شکل ۲۷. test_latching i=03.
شکل ۲۸. test_latching i=04.
شکل ۲۹. test_latching i=05.
شکل ۳۰. test_latching i=06.
شکل ۳۱. test_latching i=07.
شکل ۳۲. test_latching i=08.
شکل ۳۳. test_latching i=09.
شکل ۳۴. test_latching i=10.
شکل ۳۵. test_latching i=11.
شکل ۳۶. test_latching i=12.
test_linearity
آزمایش میکند که پردازش دستگاه میتواند به پیکسلهای خطی معکوس شود. وقتی دستگاه بهسمت هدف یکنواختی گرفته شده باشد، توالیای از عکسها را ثبت میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
قبول: مقادیر R، G، B باید بهطور خطی با افزایش حساسیت افزایش یابند.
شکل ۳۷. نمونه میانگین نمودار test_linearity.
test_locked_burst
قفل 3A و انفجار YUV را آزمایش میکند (بااستفاده از تنظیم خودکار). این آزمایش بهگونهای طراحی شده است که حتی در دستگاههای محدودی که MANUAL_SENSOR یا PER_FRAME_CONTROLS ندارند، موفقیتآمیز باشد.
این آزمایش سازگاری تصویر YUV را بررسی میکند، درحالیکه بررسی نرخ فریم در CTS است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
قبول: عکسهای گرفتهشده یکدست بهنظر میرسند.
شکل ۳۸. نمونه test_locked_burst frame0.
شکل ۳۹. نمونه test_locked_burst frame1.
شکل ۴۰. نمونه test_locked_burst frame2.
scene1_2
scene 1_2 ازنظر عملکردی کپی یکسانی از scene 1_1 است که ساختار زیرصحنه را برای کاهش مدتزمان طولانی scene 1 پیادهسازی میکند.
test_param_color_correction
آزمایش میکند که پارامترهای android.colorCorrection.* هنگام تنظیم اعمال شوند.
با مقادیر تبدیل و بهره متفاوت عکس میگیرد و آزمایش میکند که آیا عکسها
بهطور متناظر متفاوت بهنظر میرسند یا نه. تبدیل و بهرهها بهگونهای انتخاب میشوند که خروجی
بهطور فزایندهای قرمز یا آبی شود. از نگاشت رنگمایه خطی استفاده میکند.
نگاشت رنگمایه تکنیکی است که در پردازش تصویر برای نگاشت یک مجموعه رنگ به مجموعهای دیگر استفاده میشود تا ظاهر تصاویر با دامنه پویای بالا در رسانهای با دامنه پویای محدودتر شبیهسازی شود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
قبول: مقادیر قرمز و آبی براساس تبدیل تقویت میشوند.
شکل ۴۱. نمونه میانگین نمودار test_param_color_correction.
در شکلهای زیر، محور x درخواستهای ضبط است: 0 = unity، 1 = red boost، و 2 = blue boost.
شکل ۴۲. نمونه unity با req=0 برای test_param_color_correction.
شکل ۴۳. نمونه تقویت رنگ قرمز test_param_color_correctness req=1.
شکل ۴۴. نمونه تقویت رنگ آبی req=2 در test_param_color_correction.
test_param_flash_mode
آزمایش میکند که پارامتر android.flash.mode اعمال شده باشد. نوردهی را بهصورت دستی روی سمت تاریک تنظیم میکند تا مشخص شود فلاش زده شده است یا نه، و از نگاشت رنگ خطی استفاده میکند. مرکز را با تصویر کاشی بررسی میکند تا ببیند
آیا گرادیان بزرگی ایجاد شده است تا تأیید کند فلاش زده است یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: مرکز تصویر کاشی گرادیان بزرگی دارد، یعنی فلاش زده شده است.
شکل ۴۵. نمونه test_param_flash_mode 1.
شکل ۴۶. نمونه یک کاشی test_param_flash_mode.
شکل ۴۷. نمونه test_param_flash_mode 2.
شکل ۴۸. نمونه دو کاشی test_param_flash_mode.
test_param_noise_reduction
آزمایش میکند که پارامتر android.noiseReduction.mode درصورت تنظیم شدن،
بهدرستی اعمال شود. تصاویر را با دوربین در نور کم ثبت میکند. از بهره آنالوگ بالا استفاده میکند تا
مطمئن شود تصویر گرفتهشده نویز دارد. سه تصویر برای NR خاموش،
سریع، و کیفیت بالا میگیرد. همچنین تصویری با بهره کم و NR خاموش ثبت میکند و
از واریانس آن بهعنوان خط مبنا استفاده میکند. هرچه نسبت سیگنال به نویز (SNR) بالاتر باشد، کیفیت تصویر بهتر است.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: SNR با حالتهای مختلف نوفهکاهی متفاوت است و رفتاری مشابه نمودار زیر دارد:
شکل ۴۹. نمونه SNRs نمودار test_param_noise_reduction.
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=1.
شکل ۵۲. نمونه test_param_noise_reduction high gain nr=2.
شکل ۵۳. نمونه test_param_noise_reduction high gain nr=3.
شکل ۵۴. نمونه بهره کم test_param_noise_reduction.
test_param_shading_mode
آزمایش میکند که پارامتر android.shading.mode اعمال شده باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
موفق: حالتهای سایهزنی تغییر میکنند و نقشههای سایهزنی لنز طبق انتظار اصلاح میشوند.
شکل ۵۵. نقشه سایهزنی لنز test_param_shading_mode، مثال حلقه ۰ حالت ۰.
شکل ۵۶. نقشه سایهزنی لنز test_param_shading_mode، نمونه حلقه ۰ حالت ۱.
شکل ۵۷. نقشه سایهزنی لنز test_param_shading_mode، مثال حلقه ۰ حالت ۲.
test_param_tonemap_mode
آزمایش میکند که پارامتر android.tonemap.mode اعمال شده باشد. منحنیهای نگاشت رنگمایه متفاوتی را برای هر کانال R، G، B اعمال میکند و بررسی میکند که تصاویر خروجی طبق انتظار اصلاح شده باشند. این آزمایش شامل دو آزمایش test1 و test2 است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
گذرواژه:
test1: هر دو تصویر دارای نگاشت رنگ خطی هستند، اماn=1شیب تندتری دارد. کانال G (سبز) برای تصویرn=1روشنتر است.-
test2: نگاشت رنگمایه یکسان، اما طول متفاوت. تصاویر یکسان هستند.
شکل ۵۸. test_param_tonemap_mode با n=0.
شکل ۵۹. test_param_tonemap_mode با n=1.
test_post_raw_sensitivity_boost
بررسیها پساز تقویت حساسیت خام. مجموعهای از تصاویر خام و YUV را با حساسیتهای مختلف ضبط میکند، ترکیب تقویت حساسیت خام را پست میکند، و بررسی میکند که آیا میانگین پیکسل خروجی با تنظیمات درخواست مطابقت دارد یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
قبول: با افزایش تقویت، تصاویر Raw تیرهتر میشوند درحالیکه روشنایی تصاویر YUV ثابت میماند.
شکل ۶۰. نمونه test_post_raw_sensitivity_boost raw s=3583 boost=0100.
شکل ۶۱. نمونه test_post_raw_sensitivity_boost raw s=1792 boost=0200.
شکل ۶۲. نمونه test_post_raw_sensitivity_boost raw s=0896 boost=0400.
شکل ۶۳. نمونه test_post_raw_sensitivity_boost raw s=0448 boost=0800.
شکل ۶۴. نمونه test_post_raw_sensitivity_boost raw s=0224 boost=1600.
شکل ۶۵. نمونه test_post_raw_sensitivity_boost raw s=0112 boost=3199.
شکل ۶۶. نمونه میانگین نمودار خام test_post_raw_sensitivity_boost.
شکل ۶۷. نمونه test_post_raw_sensitivity_boost YUV s=0112 boost=3199.
شکل ۶۸. نمونه test_post_raw_sensitivity_boost YUV s=0448 boost=0800.
شکل ۶۹. نمونه test_post_raw_sensitivity_boost YUV s=0896 boost=0400.
شکل ۷۰. نمونه test_post_raw_sensitivity_boost YUV s=1792 boost=0200.
شکل ۷۱. نمونه test_post_raw_sensitivity_boost YUV s=3585 boost=0100.
شکل ۷۲. نمونه test_post_raw_sensitivity_boost_yuv_plot_means.
test_raw_exposure
مجموعهای از تصاویر خام را با افزایش زمان نوردهی ثبت میکند و مقادیر پیکسل را اندازهگیری میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
قبول: افزایش ISO (بهره) پیکسلها را نسبتبه نور حساستر میکند، بنابراین نمودار بهسمت چپ حرکت میکند.
شکل ۷۳. نمونه test_raw_exposure ISO=55.
۱۰⁰ برابر با ۱ میلیثانیه، ۱۰¹ برابر با ۱۰ میلیثانیه، و ۱۰⁻¹ برابر با ۰٫۱ میلیثانیه است.
شکل ۷۴. نمونه test_raw_exposure ISO=132.
شکل ۷۵. نمونه test_raw_exposure ISO=209.
شکل ۷۶. نمونه test_raw_exposure ISOs=286.
شکل ۷۷. نمونه test_raw_exposure ISO=363.
شکل ۷۸. نمونه test_raw_exposure ISO=440.
test_reprocess_noise_reduction
آزمایشهایی که android.noiseReduction.mode برای درخواستهای پردازش مجدد اعمال میشود.
تصاویر بازپردازششده را با دوربین در نور کم ضبط میکند. از بهره آنالوگ بالا استفاده میکند
تا تأیید کند تصویر ضبطشده نویز دارد. سه تصویر بازپردازششده را برای NR خاموش، سریع، و کیفیت بالا ضبط میکند. تصویر بازپردازششدهای را با بهره کم و NR خاموش ثبت میکند و از واریانس آن بهعنوان خط مبنا استفاده میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: FAST >= OFF، HQ >= FAST، و HQ >> OFF.
شکل ۷۹. نمونه نمودار SNR معمول دربرابر حالت NR.
test_tonemap_sequence
توالی عکسها را با منحنیهای نگاشت رنگمایه مختلف آزمایش میکند. ۳ عکس دستی با نگاشت رنگمایه خطی میگیرد. ۳ عکس دستی با نگاشت رنگ پیشفرض میگیرد. دلتا را بین هر جفت قاب متوالی محاسبه میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: سه قاب یکسان وجود دارد که بهدنبال آن مجموعه دیگری از سه قاب یکسان وجود دارد.
شکل ۸۰. نمونه test_tonemap_sequence i=0.
شکل ۸۱. نمونه test_tonemap_sequence i=1.
شکل ۸۲. نمونه test_tonemap_sequence i=2.
شکل ۸۳. نمونه test_tonemap_sequence i=3.
شکل ۸۴. نمونه test_tonemap_sequence i=4.
شکل ۸۵. نمونه test_tonemap_sequence i=5.
test_yuv_jpeg_all
آزمایش میکند که همه اندازهها و قالبهای گزارششده برای ضبط تصویر کار میکنند. از درخواست دستی با نگاشت رنگ خطی استفاده میکند تا YUV و JPEG هنگام تبدیل توسط واحد image_processing_utils یکسان بهنظر برسند. تصاویر بهطور پیشفرض ذخیره نمیشوند، اما با فعال کردن debug_mode میتوان آنها را ذخیره کرد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
قبول: همه مراکز تصویر حداکثر تفاوت جذر میانگین مربعات (RMS) (مقدار سیگنال) را در تصاویر تبدیلشده RGB با ۳٪ از تصویر YUV با بالاترین وضوح دارند.
شکل ۸۶. نمونه test_yuv_jpeg_all.
test_yuv_plus_dng
آزمایش میکند که اندازهها و قالبهای گزارششده برای ضبط تصویر کار میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: آزمایش تکمیل میشود و تصاویر درخواستشده را برمیگرداند.
شکل ۸۷. نمونه test_yuv_plus_dng.
scene1_3
scene 1_3 ازنظر عملکردی کپی یکسانی از scene 1_1 است که ساختار زیرصحنه را برای کاهش مدتزمان طولانی scene 1 پیادهسازی میکند.
test_capture_result
آزمایش میکند که دادههای معتبر در اشیاء CaptureResult برگردانده شود. این آزمایش
شامل یک ثبت خودکار، یک ثبت دستی، و یک ثبت خودکار دوم است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
قبول: فراداده برای همه عکسبرداریها معتبر است و تنظیمات دستی به عکسبرداری خودکار دوم نشت نمیکند. تصحیح سایهزنی لنز را برای عکسهای گرفتهشده ترسیم میکند.
شکل ۸۸. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
درستیسنجی میکند که پارامترهای مدل خام DNG درست باشد. این نمودار واریانس اندازهگیریشده یک وصله مرکزی از کارت خاکستری را در عکسهای خام گرفتهشده در طیفی از حساسیتها نشان میدهد و این مقادیر را با واریانسی که در هر حساسیت توسط مدل نویز DNG در HAL دوربین انتظار میرود (براساس پارامترهای O,S برگرداندهشده در اشیاء نتیجه عکسبرداری) مقایسه میکند. برای جزئیات بیشتر درباره مدل نویز DNG، سند زیر را درباره مدل نویز DNG بارگیری کنید.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
قبول: پارامترهای مدل خام DNG صحیح است. مقادیر RGB موردانتظار با مقادیر RGB واقعی اندازهگیریشده مطابقت دارد.
شکل ۸۹. test_dng_noise_model_plog.
test_jpeg
آزمایش میکند که تصاویر YUV تبدیلشده و تصاویر JPEG دستگاه یکسان بهنظر برسند. آزمایش ۱۰٪ مرکز تصویر را میگیرد و مقدار RGB را محاسبه میکند و تأیید میکند که مطابقت دارند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: میانگین تفاوت RGB بین هر تصویر کمتر از ۳٪ است.
شکل ۹۰. test_jpeg_fmt=jpg.jpg.
شکل ۹۱. test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
مجموعهای از تصاویر خام را با بهرههای افزایشی ضبط میکند و نوفه را اندازهگیری میکند. فقط عکسهای خام را بهصورت رگباری ضبط میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
قبول: هر عکس نسبتبه عکس قبلی نویز بیشتری دارد، زیرا بهره درحال افزایش است.
از واریانس سلول شبکه آمار مرکزی استفاده میکند.
شکل ۹۲. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
مجموعهای از تصاویر خام را با حساسیتهای افزایشی ضبط میکند و نویز (واریانس) را در ۱۰٪ مرکز تصویر اندازهگیری میکند. آزمایش میکند که هر عکس نویز بیشتری نسبتبه عکس قبلی داشته باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
پاس: واریانس با هر شوت افزایش مییابد.
شکل ۹۳. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
یک فریم تکی را بهعنوان بروندادهای YUV و JPEG ضبط میکند. از درخواست دستی با نگاشت رنگ خطی استفاده میکند تا YUV و JPEG هنگام تبدیل توسط واحد image_processing_utils یکسان بهنظر برسند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
قبول: تصاویر YUV و JPEG مشابه هستند و کمتر از ۱٪ تفاوت RMS (مقدار سیگنال) دارند.
شکل ۹۴. test_yuv_plus_jpeg با قالب JPEG.
شکل ۹۵. test_yuv_plus_jpeg با قالب YUV.
test_yuv_plus_raw
ضبط یک فریم را هم بهصورت خروجی خام (خام ۱۰ بیتی و ۱۲ بیتی) و هم بهصورت خروجی YUV (درصورت پشتیبانی) آزمایش میکند. از درخواست دستی با نگاشت رنگ خطی استفاده میکند، بنابراین انتظار میرود
خام و YUV یکسان باشند. مقادیر RGB ۱۰٪ مرکزی تصاویر تبدیلشده RGB را مقایسه میکند. گزارشهاandroid.shading.mode.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#RAW10android.graphics.ImageFormat#RAW12
قبول: تصاویر YUV و خام مشابه هستند و کمتر از ۳٫۵٪ تفاوت RMS (مقدار جذر میانگین مربعات سیگنال) دارند.
شکل ۹۶. test_yuv_plus_raw_shading=1_raw.jpg.
شکل ۹۷. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
آزمایشهایی CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
در تنظیمات مختلف ISO انجام میدهد تا همبستگی بین ISO بالاتر و افزایش سطح نوفه را تأیید کند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
قبول: ISO بالاتر منجر به افزایش سطح نوفه میشود.
معیارهای رد شدن از آزمایش
اگر هرکدام از معیارهای زیر برآورده شود،
آزمایش test_sensitivity_priority.py نادیده گرفته میشود:
- دستگاه دارای سطح ایپیآی اول (
first_api_level) ۳۵ یا پایینتر است. - دستگاه
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYدرCONTROL_AE_AVAILABLE_PRIORITY_MODESتبلیغ نمیکند.
test_exposure_time_priority
آزمایشها CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
در زمانهای نوردهی مختلف، بررسی روشنایی پایدار در محدودهای که ISO میتواند جبران کند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
قبول: اگر ISO در محدوده جبران آن باشد، روشنایی درطول زمانهای نوردهی پایدار است (در محدوده تلورانس).
معیارهای رد شدن از آزمایش
اگر هرکدام از معیارهای زیر برآورده شود،
آزمایش test_exposure_time_priority نادیده گرفته میشود:
- دستگاه دارای سطح ایپیآی اول (
first_api_level) ۳۵ یا پایینتر است. - دستگاه
CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYدرCONTROL_AE_AVAILABLE_PRIORITY_MODESتبلیغ نمیکند.
scene2_a
scene2_a سه چهره با پسزمینه خاکستری و لباس خنثی دارد. چهرهها
بهگونهای انتخاب شدهاند که طیف وسیعی از رنگهای پوست را داشته باشند. برای اینکه تشخیص چهره بهطور بهینه کار کند، نمودار باید جهت درستی داشته باشد.
شکل ۹۸. نمونه scene2_a.
test_autoframing
رفتار قاببندی خودکار دستگاه دوربین را آزمایش میکند. بزرگنمایی زیادی انجام میدهد بهطوریکه هیچکدام از چهرهها در صحنه قابلمشاهده نیستند، حالت قاببندی خودکار را با تنظیم AUTOFRAMING در CaptureRequest روی True فعال میکند، و بررسی میکند که آیا همه چهرهها در صحنه اصلی هنگام همگرایی وضعیت (یعنی زمانی که AUTOFRAMING_STATE در CaptureResult روی AUTOFRAMING_STATE_CONVERGED تنظیم شده است) قابلتشخیص هستند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
قبول: هر سه چهره شناسایی شده است.
test_display_p3
Display P3
را در JPEG بااستفاده از میانای برنامهسازی کاربردی ColorSpaceProfiles آزمایش میکند. آزمایش میکند که JPEG ضبطشده
نمایه ICC مناسبی
در سرصفحه خود داشته باشد و تصویر حاوی رنگهایی خارج از طیف sRGB باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
قبول: JPEG حاوی نمایه ICC Display P3 و رنگهای خارج از طیف sRGB است.
test_effects
قاب را برای جلوههای دوربین پشتیبانیشده ضبط میکند و بررسی میکند که آیا بهدرستی تولید شدهاند یا نه. این آزمایش فقط جلوههای OFF و MONO را بررسی میکند، اما تصاویر را برای
همه جلوههای پشتیبانیشده ذخیره میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
قبول: تصویر صحنه را با جلوههای OFF و تصویر تکرنگ را با جلوههای تنظیمشده روی MONO ضبط میکند.
شکل ۹۹. test_effects_MONO.
test_exposure_keys_consistent
این آزمایش میانگین لومای ضبط با نوردهی خودکار فعال را با ضبط با نوردهی خودکار غیرفعال که بهطور دستی پارامترهای نوردهی (حساسیت، زمان نوردهی، مدت فریم، تقویت حساسیت پساز خام) دریافتی در CaptureResult ضبط با نوردهی خودکار فعال را اعمال میکند مقایسه میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
قبول: تفاوت نسبی در لومای بین دو عکس کمتر از ۴ درصد است.
test_format_combos
ترکیبهای مختلف قالبهای خروجی را آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
قبول: همه ترکیبها باموفقیت ضبط شدهاند.
test_num_faces
تشخیص چهره را آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره پیدا میکند.
شکل ۱۰۰. نمونه ۱ حالت تشخیص چهره test_num_faces.
test_reprocess_uv_swap
آزمایش میکند که پردازش مجدد YUV صفحههای U و V را جابهجا نکند. این مورد با محاسبه مجموع تفاوتهای مطلق (SAD) بین تصویر بازپردازششده و تصویر بازپردازشنشده تشخیص داده میشود. If swapping the output U and V planes of the reprocessed capture results in an increased SAD, then the output is assumed to have the correct U and V planes.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraDevice#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
قبول: صفحههای U و V جابهجا نشدهاند.
شکل ۱۰۱. نمونه test_reprocess_uv_swap.
scene2_b
scene2_b سه چهره با پسزمینه خاکستری و لباس خنثی دارد. چهرهها
بهگونهای انتخاب شدهاند که طیف وسیعی از رنگهای پوست را داشته باشند. برای اینکه تشخیص چهره بهطور بهینه کار کند، نمودار باید جهت درستی داشته باشد.
test_preview_num_faces
تشخیص چهره را در پیشنما با افزایش تنوع رنگمایه پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوشهای محدودکننده چهره پیدا میکند.
شکل ۱۰۲. نمونه ۱ حالت تشخیص چهره test_num_faces.
test_yuv_jpeg_capture_sameness
دو تصویر را بااستفاده از بزرگترین قالبهای رایج YUV و JPEG با همان نسبت ابعادی بزرگترین قالب JPEG که از وضوح ۱۴۴۰×۱۹۲۰ فراتر نمیرود ضبط میکند.
jpeg.quality را روی ۱۰۰ تنظیم میکند و درخواست سطح دوگانه را ضبط میکند. هر دو تصویر را به آرایههای RGB تبدیل میکند و تفاوت جذر میانگین مربعات (RMS) سهبعدی بین دو تصویر را محاسبه میکند.
علاوهبراین، این آزمایش تأیید میکند که خروجیهای YUV برای همه موارد استفاده از جاریسازی پشتیبانیشده
بهطور منطقی مشابه YUV با مورد استفاده STILL_CAPTURE است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
قبول: تصاویر YUV و JPEG برای مورد استفاده STILL_CAPTURE کمتر از ۳٪ تفاوت RMS (مقدار جذر میانگین مربعات سیگنال) دارند؛ تصاویر YUV برای همه موارد استفاده پشتیبانیشده کمتر از ۴٪ تفاوت CIELAB با تصاویر YUV با مورد استفاده STILL_CAPTURE دارند.
scene2_c
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره پیدا میکند.
شکل ۱۰۳. نمونه حالت تشخیص چهره test_num_faces.
test_jpeg_capture_perf_class
تأخیر ضبط JPEG را برای کلاس عملکرد S همانطور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است آزمایش میکند.
قبول: باید تأخیر ضبط JPEG دوربین ۲ کمتر از ۱۰۰۰ میلیثانیه برای وضوح ۱۰۸۰ پیکسل باشد، همانطور که توسط PerformanceTest دوربین CTS تحت شرایط نوری ITS (۳۰۰۰ کلوین) برای هر دو دوربین اصلی اندازهگیری شده است.
test_camera_launch_perf_class
تأخیر راهاندازی دوربین را برای کلاس عملکرد S همانطور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است آزمایش میکند.
قبول: تأخیر راهاندازی camera2 (باز کردن دوربین تا اولین قاب پیشنمایش) باید کمتر از ۶۰۰ میلیثانیه باشد، همانطور که توسط PerformanceTest دوربین CTS تحت شرایط نوری ITS (۳۰۰۰ کلوین) برای هر دو دوربین اصلی اندازهگیری شده است.
test_default_camera_hdr
آزمایش میکند که ضبط پیشفرض دوربین برای کلاس عملکرد ۱۵، همانطور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است، Ultra HDR باشد.
قبول: ضبط بسته دوربین پیشفرض برای دستگاه کلاس عملکرد ۱۵ باید Ultra HDR باشد.
scene2_d
test_preview_num_faces
تشخیص چهره را در پیشنما با افزایش تنوع رنگمایه پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوشهای محدودکننده چهره پیدا میکند.
scene2_e
test_continuous_picture
۵۰ قاب با وضوح VGA با اولین تنظیم درخواست ضبط، ضبط میشود
android.control.afMode = 4 (CONTINUOUS_PICTURE).
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
قبول: سیستم 3A تا پایان ضبط ۵۰ فریم ثابت میشود.
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: ۳ چهره پیدا میکند.
scene2_f
scene2_f سه چهره با پسزمینه سفید و لباس سفید دارد. چهرهها
طیف وسیعی از رنگهای پوست و کنتراست بالایی با پسزمینه دارند.
شکل ۱۰۴. نمونه scene2_f.
test_preview_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوشهای محدودکننده چهره پیدا میکند.
شکل ۱۰۵. نمونه test_num_faces_fd_mode_1.
scene2_g
scene2_g سه چهره نیمرخ با پسزمینه سفید و لباس سفید دارد.
چهرهها طیف وسیعی از رنگهای پوست را دارند و کنتراست بالایی با پسزمینه دارند.
شکل ۱۰۶. نمونه scene2_g.
test_preview_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنههای چهره آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوشهای محدودکننده چهره پیدا میکند.
شکل ۱۰۷. نمونه test_preview_num_faces.
صحنه ۳
scene3 از نمودار ISO12233 استفاده میکند و اکثر آزمایشها از روش استخراج نمودار برای پیدا کردن نمودار در صحنه استفاده میکنند. به همین دلیل، اکثر تصاویر ذخیرهشده
حاشیه ندارند، مثل تصاویر صحنههای ۱، ۲، یا ۴، اما فقط نمودار. برای اینکه نموداریاب بهطور بهینه کار کند، نمودار باید در جهت درست باشد.
در Android 17 و بالاتر، scene3 از نشانگرهای ArUco
برای تشخیص نمودار استفاده میکند.
شکل ۱۰۸. نمودار scene3.
test_edge_enhancement
آزمایش میکند که پارامتر android.edge.mode بهدرستی اعمال شده باشد. تصاویر پردازشنشده را برای هر حالت لبه ضبط میکند و وضوح تصویر خروجی و فراداده نتیجه ضبط را برمیگرداند. درخواست ضبط را با پارامترهای دادهشده
حالت لبه، حساسیت، زمان نوردهی، فاصله کانونی، و سطح خروجی
پردازش میکند. در Android 17 و بالاتر، از نشانگرهای ArUco
برای تعریف ناحیه نمودار که حاوی لبههای تیز لازم است استفاده میکند.
قبول: حالت HQ (۲) واضحتر از حالت OFF (۰). حالت FAST (۱) واضحتر از حالت OFF است. حالت HQ واضحتر یا برابر با حالت FAST است.
میاناهای برنامهسازی کاربردی آزمایششده:
پارامترهای دوربین تحتتأثیر قرارگرفته:
EDGE_MODE
شکل ۱۰۹. نمونه test_edge_enhancement edge=0.
شکل ۱۱۰. نمونه test_edge_enhancement edge=1 (حالت سریع).
شکل ۱۱۱. نمونه test_edge_enhancement edge=2 (حالت کیفیت بالا).
test_flip_mirror
آزمایش میکند که آیا تصویر مطابق با 7.5.2 Front-Facing Camera در CDD بهدرستی جهتدهی شده است یا نه. در Android 17 و بالاتر، از نشانگرهای ArUco برای اعتبارسنجی حضور و جهت نمودار استفاده میکند. تصاویر آینهای، وارونه، یا چرخاندهشده را میتوان با ویژگی لوزی نزدیک مرکز شناسایی کرد.
قبول: همه نشانگرها شناسایی شدهاند و بهدرستی تراز شدهاند. تصویر وارونه، آینهای، یا چرخانده نشده باشد.
شکل ۱۱۲. نمونه وصله صحنه test_flip_mirror.
test_imu_drift
آزمایش میکند که آیا واحد اندازهگیری اینرسی (IMU) بهمدت ۳۰ ثانیه خروجی پایداری دارد یا نه درحالیکه دستگاه ثابت است و پیشنمایش با وضوح بالا را ضبط میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.hardware.Sensor#TYPE_ROTATION_VECTOR
گذرواژه:
- انحراف ژیروسکوپ درطول زمان آزمایش کمتر از ۰٫۰۱ رادیان است.
- واریانس خوانش ژیروسکوپ کمتر از 1E-7 rad2/s2/Hz درطول زمان آزمایش است.
- انحراف بردار چرخش درطول زمان آزمایش کمتر از ۰٫۰۱ رادیان است.
- (هنوز الزامی نشده است) انحراف ژیروسکوپ کمتر از ۱ درجه در ثانیه است.
شکل ۱۱۳. نمونه رانش ژیروسکوپ test_imu_drift.
شکل ۱۱۴. نمونه رانش بردار چرخش test_imu_drift.
test_landscape_to_portrait
آزمایش میکند که آیا لغو افقی به عمودی برای حسگرهای با جهت افقی بهدرستی کار میکند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraManager#getCameraCharacteristics
قبول: این آزمایش نموداری را با چرخش موردانتظار (۰ درجه وقتی لغو کردن افقی به عمودی غیرفعال است، ۹۰ درجه وقتی فعال است) پیدا میکند.
شکل ۱۱۵. نمونه test_landscape_to_portrait.
test_lens_movement_reporting
آزمایش میکند که آیا پرچم حرکت لنز بهدرستی گزارش شده است یا نه. رگباری از ۲۴ تصویر را ضبط میکند که ۱۲ فریم اول در فاصله کانونی بهینه (که توسط 3A پیدا شده است) و ۱۲ فریم آخر در حداقل فاصله کانونی قرار دارند. در حدود قاب ۱۲، لنز حرکت میکند و باعث کاهش وضوح میشود. درنهایت با حرکت لنز به موقعیت نهایی، وضوح تثبیت میشود.
پرچم حرکت لنز باید در همه قابهایی که وضوح آنها بینابین وضوح چند قاب اول با لنز ثابت در فاصله کانونی بهینه و چند قاب آخر با لنز ثابت در حداقل فاصله کانونی است، تأیید شود. قاب دقیقی که لنز حرکت میکند مهم نیست: آنچه مهم است این است که پرچم حرکت هنگام حرکت لنز تأیید شود.
در Android 17 و بالاتر، این آزمایش از نشانگرهای ArUco برای تعریف ناحیه نمودار که حاوی لبههای تیز لازم است استفاده میکند. این روش تشخیص پایداری را برای دوربینها از برنامههای فوق عریض (UW) تا تله ارائه میدهد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.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
آزمایش میکند که آیا روشهای پردازش مجدد پشتیبانیشده برای بهبود لبه بهدرستی کار میکنند یا نه. درخواست ضبط را با حالت لبه پردازش مجدد دادهشده پردازش میکند و حالتهای مختلف را برای ضبط با حالتهای لبه پردازش مجدد غیرفعالشده مقایسه میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
قبول: وضوح برای حالتهای مختلف لبه درست است. HQ (حالت ۲)
واضحتر از OFF (حالت ۰) است و بهبود بین حالتهای مختلف مشابه است.
شکل ۱۱۶. نمونه نمودار test_reprocess_edge_enhancement.
صحنه۴
scene4 از یک دایره سیاه روی پسزمینه سفید داخل یک مربع تشکیل شده است.
آزمایشها در scene4 میتوانند به تراز حساس باشند، بنابراین از Android 15 به بعد، میتوانید از check_alignment.py در فهرست راهنمای ابزارها برای فعال کردن بررسی تراز DUT و نمودار استفاده کنید.
شکل ۱۱۷. نمونه scene4.
test_30_60fps_preview_fov_match
آزمایش میکند که ویدیوهای پیشنمایش ۳۰ فریم در ثانیه و ۶۰ فریم در ثانیه میدان دید یکسانی داشته باشند. این آزمایش دو ویدیو ضبط میکند، یکی با ۳۰ فریم در ثانیه و دیگری با ۶۰ فریم در ثانیه. یک قاب نماینده از هر ویدیو انتخاب و تجزیهوتحلیل میشود تا تأیید شود که تغییرات «میدان دید» در دو ویدیو در محدوده مشخصات است. آزمایش میکند که نسبت ابعادی دایره ثابت بماند، مرکز دایره پایدار بماند، و شعاع دایره ثابت بماند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
قبول: تصاویر کشیده نشدهاند، مرکز تصاویر بیشاز ۳٪ تفاوت ندارد، و حداکثر تغییر نسبت ابعادی بین ویدیوهای ۳۰ فریم در ثانیه و ۶۰ فریم در ثانیه بیشاز ۷٫۵٪ نیست
سازوکارهای خرابی:
- دایره ویدیو ۳۰ فریم در ثانیه ازنظر اندازه تفاوت قابلتوجهی با ویدیو ۶۰ فریم در ثانیه دارد.
- دایره در تصویر گرفتهشده بهدلیل خط لوله پردازش مخدوش شده است.
- دایره در تصویر ثبتشده بهدلیل درخواست ثبت با نسبت ابعادی بسیار زیاد که ارتفاع یا عرض تصویر را کاهش میدهد، برش خورده است.
- دایره در تصویر گرفتهشده دارای انعکاس در مرکز است و بهنظر میرسد کاملاً پر نشده است.
test_aspect_ratio_and_crop
آزمایش میکند که آیا تصاویر در خط لوله تصویر بهطور غیرمنتظرهای تحریف یا برش داده میشوند یا نه. از دایرهای در همه قالبها عکس میگیرد. تأیید میکند که دایره تحریف نشده باشد، دایره از مرکز تصویر حرکت نکند، و دایره اندازه را بهطور نادرست با نسبتهای ابعادی یا وضوحهای مختلف تغییر ندهد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
قبول: تصاویر کشیده نشدهاند، مرکز تصاویر بیشاز ۳٪ تفاوت ندارند، و حداکثر میدان دید ممکن حفظ شده است.
سازوکارهای خرابی:
- دوربین با دایره نمایشدادهشده روی رایانه لوحی در مرکز صحنه ضبطشده همتراز نیست.
- دایره در تصویر گرفتهشده بهدلیل خط لوله پردازش مخدوش شده است.
- تصویر با وضوح پایینتر در خط لوله تصویر دو بار برش داده میشود و میدان دید متفاوتی بین تصاویر با وضوح بالا و پایین ایجاد میکند.
- دایره در تصویر ثبتشده بهدلیل درخواست ثبت با نسبت ابعادی بسیار زیاد که ارتفاع یا عرض تصویر را کاهش میدهد، برش خورده است.
- دایره در تصویر گرفتهشده انعکاسی در مرکز دارد و کاملاً پرشده بهنظر نمیرسد.
test_multi_camera_alignment
پارامترهای واسنجی دوربین مربوط به موقعیتیابی دوربین را برای سیستمهای چنددوربینه آزمایش میکند. بااستفاده از دوربینهای فرعی فیزیکی چنددوربینه، با یکی از دوربینهای فیزیکی عکس میگیرد. مرکز دایره را پیدا میکند. مرکز دایره را به مختصات جهانی برای هر دوربین فرافکنی میکند. تفاوت بین مرکز دایره دوربینها را در مختصات جهانی مقایسه میکند. مختصات جهانی را دوباره به مختصات پیکسل برمیگرداند و برای بررسی اعتبار با مختصات اصلی مقایسه میکند. اندازه دایرهها را مقایسه میکند تا ببیند آیا فاصله کانونی دوربینها متفاوت است یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
قبول: مراکز و اندازههای دایره در تصاویر پیشبینیشده درمقایسه با تصاویر ثبتشده بااستفاده از دادههای واسنجی دوربین و فاصلههای کانونی، مطابق انتظار است.
سازوکارهای خرابی:
-
LENS_INTRINSIC_CALIBRATION،LENS_POSE_TRANSLATION، وLENS_POSE_ROTATIONمقادیر طراحی هستند و دادههای واسنجی واقعی نیستند. - سیستم دوربین برای راهاندازی آزمایش مناسب نیست، برای مثال، آزمایش کردن سیستم دوربین عریض و فوقعریض با دکل آزمایش RFoV. برای اطلاعات بیشتر، به پرسشگان Camera ITS-in-a-box، پرسش ۱ مراجعه کنید.
test_preview_aspect_ratio_and_crop
مشابه آزمایش test_aspect_ratio_and_crop برای عکسهای ثابت، قالبهای پیشنمایش پشتیبانیشده را بررسی میکند تا مطمئن شود قابهای پیشنمایش بهطور نامناسبی کشیده یا برش داده نشدهاند. تأیید میکند که نسبت ابعادی دایره تغییر نمیکند، تصاویر برشخورده دایره را در مرکز قاب نگه میدارند، و اندازه دایره برای قالب ثابت یا با وضوحهای مختلف تغییر نمیکند (بررسی FoV).
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: تصاویر کشیده نشدهاند، مرکز تصاویر بیشاز ۳٪ تفاوت ندارند، و حداکثر FoV ممکن حفظ شده است.
test_preview_stabilization_fov
اندازههای پیشنمایش پشتیبانیشده را بررسی میکند تا مطمئن شود FoV بهدرستی برش داده شده است. این آزمایش دو ویدیو ضبط میکند، یکی با لرزشگیر پیشنمایش
ON، و دیگری با لرزشگیر پیشنمایش OFF. یک قاب نماینده از هر ویدیو انتخاب میشود و برای تأیید اینکه تغییرات FoV در دو ویدیو در محدوده مشخصات است، تجزیهوتحلیل میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: نسبت ابعادی دایره تقریباً ثابت میماند، مکان مرکز دایره ثابت میماند، و اندازه دایره بیشاز ۲۰٪ تغییر نمیکند.
test_video_aspect_ratio_and_crop
از دایرهای درون مربع در همه قالبهای ویدیویی ویدیو میگیرد. قابهای کلیدی را استخراج میکند و تأیید میکند که نسبت ابعادی دایره تغییر نمیکند، تصاویر برشدادهشده دایره را در مرکز نگه میدارند، و اندازه دایره برای قالب ثابت یا با وضوح متفاوت تغییر نمیکند (بررسی میدان دید).
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: فریمهای ویدیو کشیده نشدهاند، مرکز فریمها بیشاز ۳٪ تفاوت ندارند، و حداکثر FoV ممکن حفظ شده است.
scene6
scene6 شبکهای از نشانگرهای ArUco است که بهطور منحصربهفرد قابلشناسایی هستند.
آزمایشها در scene6 میتوانند به تراز حساس باشند، بنابراین از نسخه ۱۵ میتوانید از check_alignment.py در فهرست راهنمای ابزارها برای فعال کردن بررسی تراز DUT و نمودار استفاده کنید.
شکل ۱۱۸. نمونه scene6.
test_in_sensor_zoom
رفتار ویژگی بزرگنمایی درونحسگر دوربین را که تصاویر خام برشخورده تولید میکند آزمایش میکند.
با تنظیم مورد استفاده جاری روی
CROPPED_RAW،
آزمایش دو عکس در محدوده بزرگنمایی میگیرد، یک تصویر خام
با میدان دید کامل و یک تصویر خام برشدادهشده. این آزمایش تصاویر را به آرایههای RGB تبدیل میکند، تصویر خام برشخورده با اندازه کامل را به اندازه گزارششده توسط SCALER_RAW_CROP_REGION کاهش میدهد، و تفاوت RMS سهبعدی بین دو تصویر را محاسبه میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
قبول: تفاوت RMS سهبعدی بین تصویر خام برشخورده کوچکشده و تصویر خام FoV کامل کمتر از آستانه تعیینشده در آزمایش است.
test_zoom
رفتار زوم دوربین را از لنز زاویه بسیار باز به لنز زاویه باز آزمایش میکند. در محدوده بزرگنمایی عکس میگیرد و بررسی میکند که آیا با بزرگنمایی دوربین، نشانگرهای ArUco بزرگتر میشوند یا نه. این آزمایش همچنین بررسی میکند که آیا موقعیت نشانگر مرکزی در هر ضبط بهطور قابلپیشبینی تغییر میکند یا نه. فاصله از مرکز نشانگر مرکزی تا مرکز تصویر میتواند با نرخ ثابتی نسبت به نسبت بزرگنمایی تا زمان تعویض فیزیکی دوربین تغییر کند، یا میتواند بهطور یکنواخت بهسمت مکان همان نشانگر پساز تعویض فیزیکی دوربین تغییر کند. برنامه Jetpack Camera (JCA) باید قبلاز آزمایش روی دستگاه نصب شود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
قبول: اندازه نسبی نشانگر ArUco ضبطشده نسبتبه نسبت بزرگنمایی درخواستشده دقیق است تا تأیید شود که دوربین بهدرستی بزرگنمایی میکند و فاصله نشانگر تا مرکز تصویر طبق معیارهای ذکرشده در شرح آزمایش تغییر میکند.
شکل ۱۱۹. test_zoom برای پیدا کردن کانتور نشانگر ArUco نزدیک به مرکز.
test_low_latency_zoom
رفتار بزرگنمایی با تأخیر کم دوربین را آزمایش میکند. با android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) در محدوده بزرگنمایی عکس میگیرد و بررسی میکند که آیا نشانگرهای موجود در تصاویر خروجی با نسبتهای بزرگنمایی در فراداده عکس مطابقت دارند یا نه. از همان جلسه ضبط دوربین برای همگرایی 3A و
گرفتن عکس استفاده میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
قبول: اندازه نسبی نشانگر ضبطشده در مقایسه با فراداده نتیجه نسبت بزرگنمایی دقیق است.
test_preview_video_zoom_match
آزمایش میکند که هنگام ضبط و بزرگنمایی، پیشنمایش ویدیو و برونداد ویدیو همان برونداد را نمایش دهند و ضبط کنند. اندازه نشانگر نزدیکترین به مرکز را در نسبتهای بزرگنمایی مختلف محاسبه میکند و بررسی میکند که آیا اندازه نشانگر با افزایش نسبت بزرگنمایی افزایش مییابد یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
قبول: اندازه نسبی نشانگر ضبطشده درمقابل نسبت بزرگنمایی درخواستشده در ویدیو و پیشنمایش دقیق است.
شکل ۱۲۰. HD_1280x720_key_frame.png (قبلاز بزرگنمایی).
شکل ۱۲۱. preview_1280x720_key_frame.png (قبلاز بزرگنمایی).
شکل ۱۲۲. HD_1280x720_key_frame.png (after zoom).
شکل ۱۲۳. preview_1280x720_key_frame.png (پساز بزرگنمایی).
test_preview_zoom
آزمایش میکند که نسبت بزرگنمایی هر قاب پیشنمایش با فراداده ضبط مربوطه از لنز فوق عریض به لنز عریض مطابقت داشته باشد. این آزمایش قابهای پیشنمایش را در محدوده بزرگنمایی میگیرد و نشانگر ArUco را که نزدیکترین به مرکز است پیدا میکند. سپس آزمایش بررسی میکند که آیا موقعیت نشانگر مرکزی در هر عکس بهطور قابلپیشبینی تغییر میکند یا نه. فاصله از مرکز نشانگر مرکزی تا مرکز تصویر میتواند با نرخ ثابتی نسبت به نسبت بزرگنمایی تا زمان تعویض فیزیکی دوربین تغییر کند، یا میتواند بهطور یکنواخت بهسمت مکان همان نشانگر پساز تعویض فیزیکی دوربین تغییر کند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
قبول: اندازه نسبی نشانگر ArUco انتخابشده برای نسبت بزرگنمایی گزارششده نتیجه ثبتشده مربوطه برای همه فریمهای پیشنمایش دقیق است. فاصله نسبی نشانگر انتخابشده از مرکز تصویر برای نسبت بزرگنمایی گزارششده از نتیجه ضبط مربوطه برای همه فریمهای پیشنمایش دقیق است.
شکل ۱۲۴. تصاویر test_preview_zoom که نشانگر انتخابشده را در نزدیکترین فاصله به مرکز نشان میدهد
test_session_characteristics_zoom
محدوده نسبت بزرگنمایی را برای همه پیکربندیهای جلسه پشتیبانیشده فهرستشده در
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION آزمایش میکند.
برای هرکدام از این پیکربندیها، اگر
CameraDeviceSetup#isSessionConfigurationSupported
true را برگرداند، آزمایش تأیید میکند که محدوده نسبت بزرگنمایی برگرداندهشده در
CameraDeviceSetup#getSessionCharacteristics
قابلدسترسی است.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
قبول: هم به حداقل و هم به حداکثر نسبت بزرگنمایی برای هر
SessionConfiguration پشتیبانیشده فهرستشده در
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION میتوان رسید.
scene7
scene7 قابی مستطیلی است که به چهار ربع مساوی تقسیم شده است و هرکدام با رنگ متفاوتی پر شده است. در مرکز مستطیل، نمودار لبه کجی برای بررسی وضوح وجود دارد. چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شدهاند تا به دریافت مختصات دقیق قاب مستطیل اصلی در نسبتهای بزرگنمایی مختلف کمک کنند.
شکل ۱۲۵. صحنه ۷.
test_multi_camera_switch
این آزمایش تأیید میکند که درطول ضبط پیشنمایش در نسبتهای بزرگنمایی مختلف، تعویض بین لنزهای فوقعریض (UW) و عریض (W) منجر به مقادیر RGB مشابهی میشود.
این آزمایش از نسبتهای بزرگنمایی مختلف در محدوده ازپیشتعریفشده برای انجام ضبط پیشنمایش پویا و شناسایی نقطهای که دوربین فیزیکی تغییر میکند استفاده میکند. این نقطه نشاندهنده تغییر از لنز UW به لنز W است.
قابهای ضبطشده در نقطه تقاطع و قبلاز آن برای نوردهی خودکار (AE)، تراز سفیدی خودکار (AWB)، و فوکوس خودکار (AF) تجزیهوتحلیل میشوند.
بررسی AE تأیید میکند که تغییر لومینانس در محدوده موردانتظار برای هر دو تصویر لنز UW و W است. بررسی تراز سفیدی خودکار تأیید میکند که نسبتهای قرمز-سبز و آبی-سبز در محدوده مقادیر آستانه برای هر دو تصویر لنز UW و W قرار دارند. بررسی فوکوس خودکار مقدار تخمین وضوح را براساس میانگین اندازه گرادیان بین تصاویر لنز UW و W ارزیابی میکند.
اگر هنگام اجرای این آزمایش، اثر موآره در نتایج تداخل ایجاد کرد، از رایانه لوحی با وضوح بالاتر از فهرست رایانههای لوحی تأییدشده Camera ITS استفاده کنید.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: برای اینکه آزمایش قبول شود، بررسیهای AE و AWB باید قبول شوند. نتایج بررسی AF فقط برای اهداف ثبت استفاده میشود. معیارهای هر بررسی در زیر آمده است:
- بررسی نوردهی خودکار: اگر دستگاه از هر دو
ae_regionsوawb_regionsپشتیبانی میکند، تغییر لومینانس (مقدار Y) بین تصاویر لنز UW و W باید برای همه وصلههای رنگی کمتر از ۴٪ باشد. اگر فقطae_regionsپشتیبانی میشود، فقط مقادیر وصله رنگ خاکستری باید با معیارها مطابقت داشته باشد. - بررسی تراز سفیدی خودکار: اگر دستگاه از هر دو
ae_regionsوawb_regionsپشتیبانی میکند، تفاوت بین مقادیر قرمز-سبز و آبی-سبز برای تصاویر لنز UW و W باید کمتر از ۳٪ برای وصله رنگ خاکستری و کمتر از ۱۰٪ برای سایر وصلههای رنگی باشد. - بررسی فوکوس خودکار: وضوح تصویر برای ثبت با لنز زاویه باز باید بیشتر از وضوح ثبت با لنز زاویه فوقالعاده باز باشد.
شکل ۱۲۶. تکه خاکستری گرفتهشده با لنز UW.
شکل ۱۲۷. وصله خاکستری گرفتهشده با لنز W.
scene8
scene8 قابی مستطیلی است که به چهار ناحیه مساوی تقسیم شده است، هرکدام حاوی
پرترهای است که با نوردهی متفاوتی گرفته شده یا با سایه رنگ متفاوتی
پوشانده شده است (سایه آبی، نوردهی افزایشیافته، نوردهی کاهشیافته، سایه زرد).
چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شدهاند
تا مختصات دقیق قاب مستطیل اصلی بهدست آید.
شکل ۱۲۸. نمونه scene8.
test_ae_awb_regions
آزمایش میکند که مقادیر RGB و luma هنگام پیشنمایش ضبط در مناطق مختلف AE و AWB متفاوت باشند.
این آزمایش یک پیشنمایش ۸ ثانیهای را ضبط میکند و نورسنجی AE و AWB را روی هر ربع بهمدت ۲ ثانیه انجام میدهد. سپس آزمایش یک فریم از ضبط پیشنمایش هر منطقه استخراج میکند و از فریمهای استخراجشده برای انجام بررسیهای AE و AWB زیر استفاده میکند:
- بررسی نوردهی خودکار: تأیید میکند که قاب اندازهگیری منطقه با نوردهی کاهشیافته دارای مقدار لومای افزایشیافته بیشاز ۱٪ نسبتبه قاب اندازهگیری منطقه با نوردهی افزایشیافته است. این آزمایش تأیید میکند که تصاویر هنگام اندازهگیری منطقه تاریک روشن میشوند.
- بررسی تراز سفیدی خودکار: تأیید میکند که نسبت قرمز به آبی (از میانگین مقادیر RGB تصویر) در قاب با منطقه اندازهگیری آبی بیشاز ۲٪ بالاتر از قاب با منطقه اندازهگیری زرد است. این کار تأیید میکند که تصاویر هنگام اندازهگیری منطقه زرد (گرم) یا آبی (سرد) مقدار RGB متعادلی دارند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
قبول: هر دو بررسی AE و AWB قبول میشوند.
شکل ۱۲۹. نورسنجی قاب منطقه تاریک با نوردهی افزایشیافته.
شکل ۱۳۰. نورسنجی قاب ناحیه روشنتر با نوردهی کاهشیافته.
سازوکارهای خرابی:
تشخیص دقیق هر چهار نشانگر ArUco برای این آزمایش ضروری است. اگر تشخیص اولیه ناموفق باشد، سیستم تلاش میکند بااستفاده از نسخه سیاه و سفید تصویر، تشخیص را دوباره انجام دهد. تصویر سیاهوسفید زیر مرحله پردازش ثانویه را نشان میدهد:
شکل ۱۳۱. نشانگرهای ArUco تراز نیستند.
test_color_correction_mode_cct
آزمایشهای COLOR_CORRECTION_MODE
در دماها و تهرنگهای مختلف، با تأیید تغییرات در نسبتهای RGB
درمقابل صحنه ضبط، صحنه ۸.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
قبول: نسبتهای RGB افزایش یا کاهش موردانتظار را نسبت به دماها و تهرنگهای رنگی انتخابشده نشان میدهند.
معیارهای رد شدن از آزمایش
اگر هرکدام از معیارهای زیر برآورده شود،
آزمایش test_color_correction_mode_cct نادیده گرفته میشود:
- دستگاه دارای سطح ایپیآی اول (
first_api_level) ۳۵ یا پایینتر است. - دستگاه
COLOR_CORRECTION_MODE_CCTدرCOLOR_CORRECTION_AVAILABLE_ABERRATION_MODESتبلیغ نمیکند.
scene9
scene9 شامل هزاران دایره با اندازه و رنگ تصادفی است تا صحنهای با تکرارپذیری بسیار کم ایجاد کند و الگوریتمهای فشردهسازی JPEG را تحت فشار قرار دهد.
شکل ۱۳۲. نمونه scene9.
test_jpeg_high_entropy
آزمایش میکند که فشردهسازی JPEG دوربین در scene9 با آنتروپی بالا و
عامل کیفیت JPEG روی ۱۰۰٪ تنظیم شده باشد. ضریب بزرگنمایی افزایش مییابد تا تأیید شود که
صحنه نمایشدادهشده در رایانه لوحی، میدان دید دوربین را پر میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: فایل JPEG بهدرستی فشرده شده، نوشته شده، و از دیسک خوانده شده است.
test_jpeg_quality
کیفیت فشردهسازی JPEG دوربین را آزمایش میکند. کیفیتهای JPEG را ازطریق
android.jpeg.quality گامبهگام بررسی میکند و درستیسنجی میکند که جدولهای کوانتش بهدرستی
تغییر میکنند.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: ماتریس کوانتیزاسیون با افزایش کیفیت کاهش مییابد. (ماتریس نشاندهنده عامل تقسیم است.)
شکل ۱۳۳. میانگینهای ماتریس DQT لومینانس و کرومینانس دوربین پشت Pixel 4 درمقابل کیفیت JPEG.
شکل ۱۳۴. نمونه آزمایش ناموفق.
scene_extensions
آزمایشهای scene_extensions برای افزونههای دوربین است و باید از
Camera ITS-in-a-Box استفاده کند،
زیرا این آزمایشها به کنترل دقیق محیط آزمایش نیاز دارند. علاوهبراین،
همه نشتهای نور باید کنترل شود. برای این کار ممکن است لازم باشد دکل آزمایش،
دستگاه تحت آزمایش، و رایانه لوحی را با پارچه برزنتی بپوشانید و همچنین نشت نور از
صفحه جلویی دستگاه تحت آزمایش را ازبین ببرید.
scene_hdr
صحنه scene_hdr شامل یک عکس عمودی در سمت چپ و یک رمزینه پاسخسریع با کنتراست پایین در سمت راست است.
شکل ۱۳۵. نمونه scene_hdr.
test_hdr_extension
افزونه HDR را آزمایش میکند. با و بدون فعال بودن افزونه عکس میگیرد و بررسی میکند که آیا افزونه رمزینه پاسخسریع را قابلتشخیصتر میکند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
قبول: افزونه HDR تعداد تغییرات کنتراست موردنیاز برای تشخیص رمزینه پاسخسریع را کاهش میدهد یا گرادیان را در سراسر رمزینه پاسخسریع کاهش میدهد.
scene_low_light
صحنه scene_low_light شامل شبکهای از مربعها با سایههای مختلف خاکستری در پسزمینهای سیاه است و شبکه مربعها با خطوط قرمز محدود شده است. مربعها در جهت منحنی هیلبرت چیده شدهاند.
شکل ۱۳۶. نمونه scene_low_light.
test_night_extension
افزونه شب را آزمایش میکند. با فعال بودن افزونه، عکس میگیرد و کارهای زیر را انجام میدهد:
- وجود ۲۰ مربع را تشخیص میدهد
- روشنایی محدودشده توسط هر مربع را محاسبه میکند
- مقدار متوسط لومای ۶ مربع اول را براساس جهتگیری شبکه منحنی هیلبرت محاسبه میکند
- تفاوت مقدار لومای مربعهای متوالی (برای مثال، مربع ۲ - مربع ۱) را تا مربعهای ۵ و ۶ (مربع ۶ - مربع ۵) محاسبه میکند، و میانگین پنج تفاوت محاسبهشده را پیدا میکند.
برای دستگاههای دارای Android 16 یا بالاتر، درخواست ضبط شامل یک منطقه اندازهگیریشده است که با مستطیل محدودکننده شبکه مربعها مطابقت دارد. این افزودنی معیارهای گذر از آستانه را تغییر میدهد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
گذرواژه:
- برای دستگاههای دارای Android 16 یا بالاتر، مقدار لومای میانگین ۶ مربع اول باید حداقل ۸۰ باشد و تفاوت میانگین در مقدار لومای مربعهای متوالی تا مربعهای ۵ و ۶ باید حداقل ۱۸٫۷۵ باشد.
- برای دستگاههای دارای Android 15 و پایینتر، میانگین مقدار لومای ۶ مربع اول باید حداقل ۸۵ باشد و میانگین تفاوت مقدار لومای مربعهای متوالی تا مربعهای ۵ و ۶ باید حداقل ۱۷ باشد.
نمودار درخشندگی زیر نشان میدهد که نتیجه آزمایش موفقیتآمیز چگونه است.
شکل ۱۳۷. نمونه قبولی در آزمایش صحنه شب با نور کم.
test_low_light_boost_extension
حالت نوردهی خودکار «تقویت نور کم» را آزمایش میکند. اگر Camera2 از حالت AE تقویت نور کم پشتیبانی کند، این آزمایش برای Camera2 انجام میشود. اگر افزونه دوربین حالت شب پشتیبانی شود و افزونه از حالت AE تقویت نور کم پشتیبانی کند، این آزمایش برای افزونه دوربین حالت شب نیز انجام میشود. این آزمایش حالت نوردهی خودکار را روی تقویت نور کم تنظیم میکند، فریمی از پیشنمایش میگیرد، و موارد زیر را انجام میدهد:
- وجود ۲۰ چارگوش را تشخیص میدهد
- روشنایی محدودشده توسط هر چارگوش را محاسبه میکند
- مقدار متوسط لومای ۶ مربع اول را براساس جهتگیری شبکه منحنی هیلبرت محاسبه میکند
- تفاوت مقدار لومای مربعهای متوالی (برای مثال، مربع ۲ - مربع ۱) را تا مربعهای ۵ و ۶ (مربع ۶ - مربع ۵) محاسبه میکند، و میانگین پنج تفاوت محاسبهشده را پیدا میکند.
برای دستگاههای دارای Android 16 یا بالاتر، درخواست ضبط شامل یک منطقه اندازهگیریشده است که با مستطیل محدودکننده شبکه مربعها مطابقت دارد. این افزودنی معیارهای گذر از آستانه را تغییر میدهد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
گذرواژه:
برای دستگاههای دارای Android 16 یا بالاتر، میانگین مقدار لومای ۶ مربع اول باید حداقل ۵۴ باشد و میانگین تفاوت مقدار لومای مربعهای متوالی تا مربعهای ۵ و ۶ باید حداقل ۱۷ باشد.
برای دستگاههای دارای Android 15 و نسخههای پایینتر، میانگین مقدار درخشندگی ۶ مربع اول باید حداقل ۷۰ باشد و میانگین تفاوت در مقدار درخشندگی مربعهای متوالی تا مربعهای ۵ و ۶ باید حداقل ۱۸ باشد.
scene_tele
یک شرط کلیدی برای آزمایشهای scene_tele این است که فاصله نمودار باید حداقل برابر با حداقل فاصله کانونی لنز تلهفوتو باشد. ازآنجاییکه این حداقل فاصله کانونی میتواند در دستگاههای مختلف متفاوت باشد، باید تنظیمات خود را متناسب با دوربین تلهفوتو خاص پیکربندی کنید.
شکل ۱۳۸. راهاندازی scene_tele براساس فاصله کانونی دوربین زاویه باز و تلهفوتو.
برای اطلاعات بیشتر درباره راهاندازی سختافزار آزمایشی، به راهاندازی دکل گسترش تله مراجعه کنید.
scene6_tele
صحنه scene6_tele شامل شبکهای از نشانگرهای ArUco در پسزمینه سفید است.
اگر عکسهای scene6_tele در
دکل مدولار بیشازحد نوردهی شدهاند،
صفحه جلویی
دکل مدولار را بردارید.
دکل آزمایشی WFoV را از افزونه جدا کنید و پایه تلفن را بردارید.
شکل ۱۳۹. دکل آزمایشی WFoV را از افزونه جدا کنید و پایه تلفن را بردارید.
شکل ۱۴۰. قاب جلویی را بردارید.
test_zoom_tele
رفتار بزرگنمایی دوربین را از لنز زاویه باز به لنز تلهفوتو آزمایش میکند. آزمایش
با test_zoom یکسان است، اما رفتار بزرگنمایی دوربین را از لنز زاویه باز به لنز تلهفوتو آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
قبول: اندازه نسبی نشانگر ArUco ضبطشده درمقابل نسبت بزرگنمایی درخواستشده دقیق است تا درستیسنجی شود که دوربین بهدرستی بزرگنمایی میکند و فاصله نشانگر تا مرکز تصویر طبق معیارهای فهرستشده در test_zoom تغییر میکند.
test_preview_zoom_tele
رفتار بزرگنمایی دوربین را برای قابهای پیشنمایش از لنز زاویه باز به لنز تلهفوتو آزمایش میکند. این آزمایش مشابه
test_preview_zoom است، اما رفتار بزرگنمایی دوربین را برای فریمهای پیشنمایش از لنز زاویه باز به لنز تلهفوتو آزمایش میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
قبول: اندازه نسبی نشانگر ArUco ضبطشده درمقابل نسبت بزرگنمایی درخواستشده دقیق است تا درستیسنجی شود که دوربین بهدرستی بزرگنمایی میکند و فاصله نشانگر تا مرکز تصویر طبق معیارهای فهرستشده در test_preview_zoom تغییر میکند.
scene7_tele
scene7_tele با scene7 یکسان است، اما برای آزمایش لنز تلهفوتو تنظیم شده است. قابی مستطیلی که به چهار ربع مساوی تقسیم شده است و هرکدام با رنگ متفاوتی پر شده است. در مرکز مستطیل، نمودار لبه کجی برای بررسی وضوح وجود دارد. چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شدهاند تا به دریافت مختصات دقیق قاب مستطیل اصلی در نسبتهای بزرگنمایی مختلف کمک کنند.
test_multi_camera_switch_tele
این آزمایش تأیید میکند که درطول ضبط پیشنمایش در نسبتهای بزرگنمایی مختلف، جابهجایی بین لنزهای عریض (W) و تلهفوتو (tele) منجر به مقادیر RGB مشابهی میشود.
این آزمایش از نسبتهای بزرگنمایی مختلف در محدوده ازپیشتعریفشده برای انجام ضبط پیشنمایش پویا و شناسایی نقطهای که دوربین فیزیکی تغییر میکند استفاده میکند. این نقطه نشاندهنده تغییر از لنز زاویه باز به لنز تلهفوتو است.
قابهای ضبطشده در نقطه تقاطع و قبلاز آن برای نوردهی خودکار، تراز سفیدی خودکار، و فوکوس خودکار تجزیهوتحلیل میشوند.
بررسی نوردهی خودکار تأیید میکند که تغییر لومینانس در محدوده موردانتظار برای تصاویر لنز تله و عریض است. بررسی «تراز سفیدی خودکار» تأیید میکند که نسبتهای قرمز-سبز و آبی-سبز در محدوده مقادیر آستانه برای هر دو تصویر لنز زاویه باز و تلهفوتو قرار دارند. بررسی فوکوس خودکار مقدار تخمین وضوح را براساس اندازه گرادیان میانگین بین تصاویر لنز تلهفوتو و زاویه باز ارزیابی میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: برای اینکه آزمایش قبول شود، بررسیهای AE، AWB، و AF باید همگی قبول شوند. معیارهای هر بررسی در زیر آمده است:
- بررسی نوردهی خودکار: تغییر لومینانس بین تصاویر لنز تله و زاویه باز باید کمتر از ۴٪ باشد.
- بررسی تراز سفیدی خودکار: در فضای رنگ LAB، دلتا C بین قرمز-سبز و آبی-سبز برای زاویه باز و تلهفوتو نمیتواند از ۱۰ بیشتر باشد.
- بررسی فوکوس خودکار: وضوح تصویر لنز تله باید بیشتر از لنز زاویه باز باشد.
scene_video
scene_video صحنهای ویدیویی است که از چهار دایره با رنگهای مختلف تشکیل شده است که با نرخ فریمهای مختلف در پسزمینهای سفید به جلو و عقب حرکت میکنند.
شکل ۱۴۱. نمونه scene_video.
test_preview_frame_drop
آزمایش میکند که نرخ فریم پیشنمایش درخواستشده با صحنه پویا حفظ شود. این آزمایش روی همه دوربینهایی که درمعرض برنامههای شخص ثالث قرار دارند اجرا میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: نرخ فریم پیشنمایش در حداکثر محدوده نرخ فریم درخواستشده است و میانگین تغییر بین فریمهای متوالی کمتر از تلورانس نسبی تنظیمشده در آزمایش است.
صحنههای آزمایشی مبتنی بر Gen2 rig / sensor_fusion
feature_combination
آزمایشهای feature_combination تأیید میکنند که وقتی چند ویژگی دوربین بهطور همزمان فعال است،
ویژگیها بهدرستی کار میکنند. این آزمایشها از همان تصویر شطرنجی استفاده میکنند که در صحنه ادغام حسگر استفاده میشود.
test_feature_combination
همه ترکیبهای مختلف جاریسازی، حالت لرزشگیر ویدیو، محدوده FPS هدف، ویدیو HDR ۱۰ بیتی، و Ultra HDR را که دستگاه دوربین پشتیبانی میکند آزمایش میکند.
برای Android 16 و بالاتر، این آزمایش همه ترکیبهای ویژگیهای پشتیبانیشده را اجرا میکند و نتایج را در یک فایل proto ثبت میکند. ادعاهای شکست
فقط برای ترکیب ویژگیهایی فراخوانی میشوند که
isSessionConfigurationSupported برای آنها True را برمیگرداند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
قبول: برای هر ترکیب ویژگی پشتیبانیشده:
- اگر لرزشگیر پیشنمایش روشن باشد، جاریسازی پیشنمایش لرزشگیری میشود.
- نرخ فریم پیشنمایش در محدوده پیکربندیشده
AE_TARGET_FPS_RANGEقرار میگیرد. - فضای رنگی جاری پیشنمایش ضبطشده با آنچه تنظیم شده است مطابقت دارد.
- ضبط Ultra HDR دارای نگاشت بهره معتبر است.
scene_flash
آزمایشهای scene_flash به صحنه تاریک در جعبه ادغام حسگر نیاز دارد.
در Android 17 و بالاتر، آزمایش scene_flash را میتوان بااستفاده از دکل Gen2 انجام داد.
test_auto_flash
آزمایش میکند که فلاش خودکار در صحنه تاریک برای دوربینهای پشت و جلو فعال میشود. برای دوربینهای جلو، فلاش خودکار از صفحهنمایش برای روشن کردن صحنه استفاده میکند، نه از فلاش فیزیکی. این آزمایش با بررسی اینکه مرکز تصویر کاشی با فعال بودن فلاش خودکار روشنتر است، تأیید میکند که فلاش خودکار فعال شده است. برای راهاندازی فلاش خودکار، چراغهای دکل آزمایشی باید خاموش شوند. چراغها را میتوان بهطور خودکار با کنترلکننده Arduino خاموش کرد. برای اینکه آزمایش بهدرستی کار کند، صحنه باید کاملاً تاریک باشد. برنامه Jetpack Camera (JCA) باید قبلاز آزمایش روی دستگاه نصب شود. فلاش خودکار برای دوربینهای پشت به وضعیت نوردهی خودکار برای فعال شدن متکی است، اما فلاش خودکار برای دوربینهای جلو به نوردهی خودکار متکی نیست و همیشه فعال میشود.
در Android نسخه ۱۷ و بالاتر، سطوح بزرگنمایی غیر ۱-x را آزمایش میکند تا عملکرد صحیح را در همه محدودههای بزرگنمایی پشتیبانیشده تأیید کند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
قبول: مرکز تصویر کاشی با فلاش خودکار فعالشده برای همه دوربینها روشنتر از تصویر صحنه اصلی است.
test_flash_strength
آزمایش میکند که کنترل قدرت فلاش در حالت
SINGLE
بهدرستی پیادهسازی شده باشد.
تأیید میکند که اگر دستگاه از کنترل قدرت فلاش درحین استفاده از دوربین در حالت SINGLE پشتیبانی کند، قدرت فلاش با سطوح مختلف قدرت درخواستی تغییر میکند. تأیید میکند که کنترل قدرت فلاش با
AE_MODES مختلف کار میکند.
برای مثال، اگر حالت نوردهی خودکار ON یا OFF باشد، سطح قدرت فلاش بر روشنایی تأثیر میگذارد، و اگر حالت ON_AUTO_FLASH باشد، سطح قدرت فلاش بر روشنایی تأثیر نمیگذارد.
برای انجام آزمایش، چراغهای دکل آزمایش باید خاموش شوند. چراغها را میتوان بهطور خودکار با کنترلکننده Arduino خاموش کرد. برای اینکه آزمایش بهدرستی کار کند، صحنه باید کاملاً تاریک باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
گذرواژه:
وقتی حالت نوردهی خودکار ON یا OFF باشد، روشنایی تکههای تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_SINGLE_STRENGTH_MAX_LEVEL افزایش مییابد.
وقتی حالت نوردهی خودکار ON_AUTO_FLASH باشد، تفاوت در روشنایی تکههای تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_SINGLE_STRENGTH_MAX_LEVEL در محدوده مجاز است.
test_led_snapshot
آزمایش میکند که عکسهای آنی LED تصویر را اشباع یا رنگی نکند.
این آزمایش یک کنترلکننده روشنایی به «جعبه ادغام حسگر» اضافه میکند تا
چراغها را کنترل کند. با تنظیم چراغها روی OFF، آزمایش با تنظیم حالت AUTO_FLASH روی ON عکس میگیرد. درطول این ضبط، آزمایش یک
توالی پیشضبط را با تنظیم راهانداز aePrecapture روی START اجرا میکند و
هدف ضبط را روی Preview تنظیم میکند تا ضبط با فلاش انجام شود.
چون تصویر ضبطشده بهدلیل فلاش دارای نقطه داغ متمایزی است، این آزمایش میانگین تصویر فلاش کل تصویر ضبطشده را محاسبه میکند و بررسی میکند که آیا این مقدار در محدوده (۶۸، ۱۰۲) قرار دارد یا نه. برای بررسی اینکه آیا تصویر بهطور معقولی تراز سفید شده است یا نه، این آزمایش نسبتهای قرمز-سبز و آبی-سبز را محاسبه میکند و بررسی میکند که آیا این نسبتها بین ۰٫۹۵ و ۱٫۰۵ هستند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
قبول: نسبتهای قرمز-سبز و آبی-سبز بین ۰٫۹۵ و ۱٫۰۵ است. میانگین تصویر فلاش در محدوده (۶۸، ۱۰۲) است.
test_night_mode_indicator
عملکرد نشانگر حالت شب را آزمایش میکند، ویژگیای که نشان میدهد آیا دوربین در شرایط نور کم کار میکند و از ضبط عکس ثابت افزونه «دوربین حالت شب» بهرهمند خواهد شد یا نه. این ویژگی فقط در دستگاههایی دردسترس است که از افزونههای «دوربین حالت شب» پشتیبانی میکنند.
این آزمایش بررسی میکند که نشانگر حالت شب شرایط نور را درطول پیشنمایش دوربین بهدرستی منعکس میکند. آزمایش مراحل زیر را انجام میدهد:
- مقداردهی اولیه: این آزمایش یک
ItsSessionرا مقداردهی اولیه میکند و ویژگیهای دوربین را بازیابی میکند. همچنین با کنترلکننده روشنایی اتصال برقرار میکند. - شرایط رد شدن: اگر دستگاه از سطح ایپیآی موردنیاز یا ویژگی نشانگر حالت شب پشتیبانی نکند، آزمایش رد میشود.
- جلسه Camera2:
- این آزمایش جلسه ضبط پیشنمایش را بااستفاده از جلسه
Camera2شروع میکند. - چراغ روشن میشود و قاب پیشنمایش ضبط میشود.
- این آزمایش تأیید میکند که نشانگر حالت شب در وضعیت
OFFقرار دارد. - چراغ خاموش میشود و قاب پیشنمایش ضبط میشود.
- این آزمایش تأیید میکند که نشانگر حالت شب در وضعیت
ONقرار دارد.
- این آزمایش جلسه ضبط پیشنمایش را بااستفاده از جلسه
- جلسه افزونه دوربین:
- این آزمایش همان روال جلسه
Camera2را تکرار میکند، اما از جلسهCameraExtensionبا افزونهEXTENSION_NIGHTاستفاده میکند.
- این آزمایش همان روال جلسه
- پاکسازی: آزمایش
ItsSessionرا میبندد و کنترلکننده روشنایی را آزاد میکند.
میاناهای برنامهسازی کاربردی آزمایششده:
گذرواژه:
- وقتی چراغ روشن است، نشانگر حالت شب باید در وضعیت
OFFباشد. - وقتی چراغ خاموش است، نشانگر حالت شب باید در وضعیت
ONباشد. - برای هر دو جلسه
Camera2وCameraExtensionاعمال میشود.
test_preview_min_frame_rate
آزمایش میکند که نرخ فریم پیشنمایش در صحنه تاریک بهدرستی کاهش مییابد. برای اینکه این آزمایش بهدرستی کار کند، چراغهای دکل آزمایش باید توسط کنترلکننده یا بهصورت دستی توسط اپراتور آزمایش خاموش شوند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: نرخ فریم پیشنمایش حداقل در محدوده نرخ فریم درخواستی است و تفاوت بین فریمها کمتر از تلورانس مطلق تعیینشده در آزمایش است.
test_torch_strength
آزمایش میکند که کنترل قدرت فلاش در حالت
TORCH
بهدرستی پیادهسازی شده باشد.
تأیید میکند که اگر دستگاه از کنترل قدرت فلاش درحین استفاده از دوربین در حالت TORCH پشتیبانی کند،
قدرت چراغقوه با سطوح مختلف قدرت درخواستی تغییر میکند. تأیید میکند که کنترل قدرت فلاش با
AE_MODES مختلف کار میکند.
برای مثال، اگر حالت نوردهی خودکار ON یا OFF باشد، سطح قدرت فلاش بر روشنایی تأثیر میگذارد، و اگر حالت ON_AUTO_FLASH باشد، سطح قدرت فلاش بر روشنایی تأثیر نمیگذارد.
تأیید میکند که قدرت چراغقوه درطول مدت عکاسی پیاپی یکسان میماند و جلسه ضبط ویدیو را شبیهسازی میکند. برای انجام آزمایش، چراغهای دکل آزمایش باید خاموش شوند. چراغها را میتوان بهطور خودکار با کنترلکننده Arduino خاموش کرد. برای اینکه آزمایش بهدرستی کار کند، صحنه باید کاملاً تاریک باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
گذرواژه:
وقتی حالت نوردهی خودکار ON یا OFF باشد، روشنایی وصلههای رگبار تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_TORCH_STRENGTH_MAX_LEVEL افزایش مییابد.
وقتی حالت نوردهی خودکار ON_AUTO_FLASH باشد، تفاوت در
روشنایی وصلههای رگبار تصویر در محدوده مجاز است
چون سطح قدرت فلاش از بدون فلاش به
FLASH_TORCH_STRENGTH_MAX_LEVEL افزایش مییابد.
scene_gen2_chart
در Android 17 و بالاتر، scene_gen2_chart از
نمودار کاغذی Gen2 استفاده میکند.
این نمودار آزمایشی شامل نمونههای چهره، رمزینه پاسخسریع، وصلههای مقیاس خاکستری، ستاره زیمنس، نمودار رنگی، و مربعهای کج است.
شکل ۱۴۲. نمونه نمودار Gen2.
test_tonemap_sequence
این آزمایش منحنی نگاشت رنگ مایه پیشفرض دستگاه را درمقابل یک منحنی خطی و دو منحنی نمایی (یکی با نقاط یکنواخت و دیگری با نقاط غیریکنواخت) ارزیابی میکند. برای نتیجه قبولی، روشنایی منحنی پیشفرض باید از روشنایی منحنیهای خطی و نمایی بیشتر باشد. علاوهبراین، منحنی خطی باید روشنتر از منحنیهای نمایی باشد و دو منحنی نمایی باید سطح روشنایی مشابهی داشته باشند.
این آزمایش همچنین دقت منحنی پیشفرض دستگاه را درستیسنجی میکند. این کار با استخراج منحنی پیشفرض، وارد کردن مجدد آن، و سپس مقایسه روشنایی تصویر حاصل با تصویر منحنی پیشفرض اصلی انجام میشود.
شکل ۱۴۳. Test tonemap sequence plot.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
قبول: تفاوت روشنایی بین منحنیهای پیشفرض و خطی بیشتر از ۱۵٪ است، درحالیکه تفاوت بین دو منحنی نمایی کمتر از ۸٪ است.
test_multi_camera_switch
این آزمایش ثبات رنگ و نوردهی را درطول انتقالهای بزرگنمایی پویا تأیید میکند. این آزمایش تأیید میکند که جابهجایی بین لنزهای «فرازاویه» (UW) و «زاویه باز» (W) درطول ضبط پیشنمایش، مقادیر CIELAB تقریباً یکسانی را حفظ میکند و از تغییرات قابلمشاهده در تجربه کاربری جلوگیری میکند.
این آزمایش ضبط پیشنمایش پویایی را در محدوده بزرگنمایی ازپیشتعریفشدهای اجرا میکند تا نقطه «تقاطع» دوربین فیزیکی را راهاندازی کند، جایی که لنز زاویه بسیار باز به لنز زاویه باز تغییر میکند. این آزمایش قاب دقیقی را که در آن تعویض لنز اتفاق میافتد شناسایی میکند. قابهای بلافاصله قبل و بعداز این نقطه تقاطع ضبط و ازنظر پایداری در نوردهی خودکار (AE) و تراز سفیدی خودکار (AWB) تجزیهوتحلیل میشوند.
بررسی نوردهی خودکار تأیید میکند که نوسانات لومینانس درطول انتقال لنز در محدوده قابلقبول باقی میماند. بررسی «تراز سفیدی خودکار» درستیسنجی میکند که نسبتهای قرمز-سبز و آبی-سبز در آستانههای تعریفشده بیطرفی رنگ باقی بمانند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: برای اینکه آزمایش قبول شود، بررسیهای AE و AWB زیر باید قبول شوند:
- بررسی نوردهی خودکار: اگر دستگاه از هر دو
ae_regionsوawb_regionsپشتیبانی میکند، تغییر لومینانس (مقدار Y) بین تصاویر لنز UW و W باید برای همه وصلههای رنگی کمتر از ۴٪ باشد. اگر فقطae_regionsپشتیبانی میشود، فقط مقادیر وصله رنگ خاکستری باید با معیارها مطابقت داشته باشد. - بررسی تراز سفیدی خودکار: اگر دستگاه از هر دو
ae_regionsوawb_regionsپشتیبانی میکند، تفاوت بین مقادیر قرمز-سبز و آبی-سبز برای تصاویر لنز UW و W باید کمتر از ۳٪ برای وصله رنگ خاکستری و کمتر از ۱۰٪ برای سایر وصلههای رنگی باشد.
شکل ۱۴۴. تکه خاکستری گرفتهشده با لنز UW.
شکل ۱۴۵. وصله خاکستری گرفتهشده با لنز W.
scene_ip
در Android 16 و نسخههای بالاتر، صحنه scene_ip امکان بررسی برابری تصویر را بین
برنامه دوربین پیشفرض و برنامه دوربین Jetpack (JCA) فراهم میکند تا تفاوتهای عمده
بین تصاویر ثبتشده شناسایی شود. JCA عکسهای گرفتهشده با برنامه رسانههای اجتماعی را تکرار میکند و تصویر پایهای ارائه میدهد که برنامههای رسانههای اجتماعی سپس آن را پردازش و اصلاح میکنند.
الزامات راهاندازی سختافزار
برای آزمایشهای scene_ip، راهاندازی سختافزار زیر لازم است:
- آزمایشها در ITS-in-a-box دوربین Gen2 اجرا میشوند.
- کنترلکنندههای نورپردازی و سروو که بخشی از دکل Gen2 هستند برای کنترل محیط آزمایش استفاده میشوند.
- یک نمودار ویژگی آزمایشی در داخل دکل Gen2 قرار داده شده است.
شکل ۱۴۶. نمونه Gen2chart_sample.
معیارهای رد شدن از آزمایش
اگر هریک از معیارهای زیر برآورده شود، از آزمایشهای scene_ip صرفنظر میشود:
- دستگاه دارای سطح ایپیآی اول (
first_api_level) ۳۵ یا پایینتر است. - دستگاه تلفنی با دوربین اصلی جلو و عقب نیست (برای مثال، رایانه لوحی یا تلویزیون).
test_default_jca_ip
از نمودار ویژگی آزمایش تحت شرایط نوری کنترلشده بااستفاده از برنامه دوربین پیشفرض و JCA عکس میگیرد و بررسیهای زیر را انجام میدهد:
میدان دید: بررسی میکند که برنامه دوربین پیشفرض و عکسهای گرفتهشده با JCA میدان دید یکسانی داشته باشند. این بررسی از ویژگی رمزینه پاسخسریع مرکزی استخراجشده از تصویر نمودار ضبطشده استفاده میکند.
روشنایی: بررسی میکند که تفاوت روشنایی اندازهگیریشده بین برنامه دوربین پیشفرض و JCA از ۱۰ بیشتر نباشد. این بررسی از وصله دامنه پویا برای اندازهگیری روشنایی استفاده میکند.
تراز سفیدی: بررسی میکند که تفاوت تراز سفیدی بین برنامه دوربین پیشفرض و JCA از ۴ بیشتر نباشد. این بررسی از وصله دامنه پویا برای اندازهگیری روشنایی استفاده میکند.
پرداخت رنگ: بررسی میکند که تفاوت پرداخت رنگ بین برنامه دوربین پیشفرض و JCA از ۶ بیشتر نباشد.
قبول: آزمایش بررسیهای میدان دید، روشنایی، و تراز سفیدی را با موفقیت پشت سر میگذارد. در Android نسخه ۱۶، این آزمایش اجباری نیست (NOT_YET_MANDATED). برای Android نسخه ۱۷ و بالاتر، بررسیهای برابری توازن سفید، روشنایی، و میدان دید اجباری است. بررسی پرداز رنگ در Android 17 اجباری نیست (NOT_YET_MANDATED).
test_jca_jpegr_ip
تأیید میکند که تفاوت توازن سفید بین عکس آنی پیشنمایش JPEG_R JCA و تصاویر ضبطشده از ۴ بیشتر نباشد.
میاناهای برنامهسازی کاربردی آزمایششده:
قبول: تفاوت تراز سفیدی بین عکس آنی پیشنمایش JCA و تصویر JPEG_R ضبطشده در محدوده آستانه است (پیشفرض ۴ است).
sensor_fusion
آزمایشهای ادغام حسگر به حرکت خاص تلفن در مقابل الگوی صفحه شطرنجی و نشانگرهای ArUco نیاز دارد. برای نتایج بهینه، مطمئن شوید که نمودار آزمایشی
بهصورت صاف نصب شده باشد. نمودارهایی که تخت نیستند بر محاسبات چرخش برای بسیاری از آزمایشها تأثیر میگذارند. نمودار باید با چاپ در اندازه ۱۷×۱۷ اینچ، پشت جعبه ادغام حسگر را پر کند. (۴۳×۴۳ سانتیمتر). آزمایشهای sensor_fusion را میتوان بااستفاده از
Sensor Fusion Box خودکارسازی کرد.
شکل ۱۴۷. نمودار ادغام حسگر.
شکل ۱۴۸. نمودار ادغام حسگر که پشت جعبه ادغام حسگر را پر میکند.
test_lens_intrinsic_calibration
آزمایش میکند که آیا مرکز نوری لنز هنگام حرکت لنز بهدلیل لرزشگیر نوری تصویر (OIS) تغییر میکند یا نه. اگر نمونههای ذاتی لنز پشتیبانی شود، آزمایش میکند که آیا مرکز نوری نمونههای ذاتی لنز هنگام حرکت لنز بهدلیل OIS تغییر میکند یا نه.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: مرکز نوری لنز ذاتی بهاندازه ۱ پیکسل یا بیشتر تغییر میکند. اگر نمونههای ذاتی لنز پشتیبانی شود، مراکز نوری نمونههای ذاتی لنز بهاندازه ۱ پیکسل یا بیشتر تغییر میکند.
شکل زیر نمونهای از نمودار test_lens_intrinsic_calibration است
که تغییرات نقاط اصلی را برحسب پیکسل برای هر فریم نشان میدهد:
شکل ۱۴۹. نمونهای از نمودار test_lens_intrinsic_calibration که تغییرات نقاط اصلی را برحسب پیکسل برای هر فریم نشان میدهد.
test_multi_camera_frame_sync
آزمایش میکند که مُهرهای زمان قاب ضبطشده توسط دوربین منطقی با محاسبه زاویههای مربعهای درون صفحه شطرنجی برای تعیین مُهر زمان، در محدوده ۱۰ میلیثانیه باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
قبول: زاویه بین تصاویر هر دوربین با چرخاندن تلفن تغییر قابلتوجهی نمیکند.
test_preview_distortion
آزمایش میکند که اعوجاج در سراسر هر قاب پیشنمایش گرفتهشده در سطوح بزرگنمایی مختلف اصلاح شده باشد. برای هر قاب پیشنمایش، این آزمایش نقاط ایدهآل را براساس ویژگیهای ذاتی و بیرونی دوربین محاسبه میکند.
در تصویر نمونه، نقاط ایدهآل با رنگ سبز و نقاط واقعی با رنگ قرمز نشان داده شدهاند. خطای اعوجاج براساس فاصله پیکسل RMS بین نقاط واقعی و نقاط ایدهآل محاسبه میشود. از برجستهسازیهای سبز و قرمز روی تصویر برای تشخیص بصری ناحیه خطای اعوجاج استفاده میشود.
شکل ۱۵۰. تصویر صفحه شطرنجی با نقاط ایدهآل به رنگ سبز و نقاط واقعی به رنگ قرمز.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
قبول: خطای اعوجاج نرمالشده هر قاب پیشنمایش کمتر از آستانه تعیینشده در آزمایش است.
test_preview_stabilization
آزمایشهایی که پیشنمایش ویدیو تثبیتشده را کمتر از ژیروسکوپ میچرخاند.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: حداکثر زاویه چرخش در قابها کمتر از ۷۰٪ چرخش ژیروسکوپ است.
در زیر نمونه ویدیوهایی با و بدون لرزشگیر آورده شده است:
شکل ۱۵۱. ویدیو نمونه با لرزشگیر.
شکل ۱۵۲. نمونه ویدیو بدون لرزشگیر.
test_sensor_fusion
تفاوت مُهر زمان بین دوربین و ژیروسکوپ را برای برنامههای واقعیت افزوده و واقعیت مجازی آزمایش میکند. تلفن ۱۰ بار بهاندازه ۹۰ درجه در مقابل الگوی شطرنجی چرخانده میشود. حرکت حدود ۲ ثانیه رفتوبرگشت است. اگر ژیروسکوپ وجود نداشته باشد یا پارامتر منبع مُهر زمان REALTIME فعال نباشد، این آزمایش رد میشود.
آزمون test_sensor_fusion تعدادی نمودار تولید میکند. دو نمودار مهم برای اشکالزدایی عبارتاند از:
test_sensor_fusion_gyro_events: رویدادهای ژیروسکوپ تلفن را درطول آزمایش نشان میدهد. حرکت در جهت x و y نشان میدهد که تلفن بهطور ایمن روی صفحه نصب قرار نگرفته است و احتمال قبولی در آزمایش را کاهش میدهد. تعداد چرخهها در نمودار به سرعت نوشتن برای ذخیره کردن فریمها بستگی دارد.
شکل ۱۵۳. نمونه رویدادهای ژیروسکوپ test_sensor_fusion.
test_sensor_fusion_plot_rotations: تراز ژیروسکوپ و رویدادهای دوربین را نشان میدهد. این نمودار باید حرکت منطبق بین دوربین و ژیروسکوپ را تا ۱± میلیثانیه نشان دهد.
شکل ۱۵۴. نمونه چرخشهای نمودار test_sensor_fusion.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
قبول: انحراف مُهر زمان دوربین و ژیروسکوپ کمتر از ۱ میلیثانیه است، طبق 7.3.9 High Fidelity Sensors در CDD.
سازوکارهای خرابی:
- خطای انحراف: انحراف دوربین-ژیروسکوپ بهدرستی در محدوده ۱-/+ میلیثانیه واسنجی نشده است.
- افت فریم: خط لوله بهاندازه کافی سریع نیست که بتواند ۲۰۰ فریم را بهطور متوالی ضبط کند.
- خطاهای سوکت:
adbنمیتواند بهطور مطمئن و بهمدت کافی به DUT متصل شود تا آزمایش را اجرا کند. - نمودار بهصورت صاف نصب نشده است. نمودار
test_sensor_fusion_plot_rotationsدارای قابهایی است که در آنها چرخش ژیروسکوپ و دوربین بهطور قابلتوجهی متفاوت است، زیرا دوربین در بخشهایی از نمودار که تخت نیستند میچرخد. - دوربین بهصورت صاف نصب نشده است. نمودار
test_sensor_fusion_gyro_eventsحرکت در صفحههای X و Y را نشان میدهد. این مشکل بیشتر در دوربینهای جلو رخ میدهد زیرا دوربین پشت اغلب برآمدگیای نسبتبه بقیه بدنه تلفن دارد که باعث ایجاد شیب هنگام نصب پشت تلفن روی صفحه نصب میشود.
test_video_stabilization
منسوخشده: این آزمایش از Android 17 منسوخ شده است. برای Android 17 و بالاتر، این آزمایش با test_video_stabilization_jca جایگزین شده است.
آزمایشهایی که نشان میدهد ویدیو لرزشگیریشده کمتر از ژیروسکوپ میچرخد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
قبول: حداکثر چرخش زاویه در قابها کمتر از ۶۰٪ چرخش ژیروسکوپ است.
در زیر نمونه ویدیوهایی با و بدون لرزشگیر آورده شده است.
شکل ۱۵۵. ویدیو نمونه با لرزشگیر.
شکل ۱۵۶. نمونه ویدیو بدون لرزشگیر.
test_video_stabilization_jca
آزمایشهایی که ویدیو تثبیتشده ضبطشده بااستفاده از JCA را کمتر از ژیروسکوپ میچرخاند. JCA باید قبلاز آزمایش روی دستگاه نصب شود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
قبول: حداکثر زاویه چرخش در فریمهای استخراجشده از ویدیو ضبطشده بااستفاده از JCA کمتر از ۷۰٪ چرخشهای ژیروسکوپ است (۴).
صحنه آزمایشی مبتنی بر پخشکننده
scene5
scene5 به صحنه خاکستری با نور یکنواخت نیاز دارد. این کار با پخشکننده نوری که روی لنز دوربین قرار میگیرد انجام میشود. پخشکننده زیر را توصیه میکنیم:
http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.
برای آماده کردن صحنه، یک پخشکننده نور در جلوی دوربین وصل کنید و دوربین را بهسمت منبع نوری با حدود ۲۰۰۰ لوکس بگیرید. تصاویر ضبطشده برای
scene5 به نورپردازی پراکنده بدون ویژگیهای واضح نیاز دارد. تصویر زیر
یک تصویر نمونه است:
شکل ۱۵۷. نمونه ضبط scene5.
چون برای این صحنه به رایانه لوحی یا کنترلکننده نیاز نیست، آزمایشها از بستر آزمایشی
TEST_BED_MANUAL استفاده میکنند. برای نمونه،
فایل config.yml آزمایش دستی را ببینید.
فایل پیشفرض config.yml شامل TEST_BED_MANUAL نیست اما میتوانید
فایل را اصلاح کنید تا شامل آن شود.
test_lens_shading_and_color_uniformity
آزمایش میکند که اصلاح سایهزنی لنز بهدرستی اعمال شده باشد و رنگ صحنه یکنواخت تکرنگ بهطور یکسان توزیع شده باشد. این آزمایش را روی قاب YUV با 3A خودکار انجام میدهد. سایه لنز براساس کانال y ارزیابی میشود. مقدار y میانگین را برای هر بلوک نمونه مشخصشده اندازهگیری میکند و با مقایسه با مقدار y مرکزی، قبولی یا ردی را تعیین میکند. آزمایش یکنواختی رنگ در فضای قرمز-سبز و آبی-سبز ارزیابی میشود.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
قبول: در شعاع مشخصشده تصویر، واریانس مقدار قرمز-سبز و آبی-سبز باید کمتر از ۲۰٪ باشد تا آزمایش قبول شود.
سازوکارهای خرابی:
- سایهروشن بیشازحد در تصاویر
- آرتیفکتهای حاشیه سیاه در تصاویر
شکل ۱۵۸. test_lens_shading_and_color_uniformity_y_plane.
شکل ۱۵۹. test_lens_shading_and_color_uniformity_color_uniformity.
شکل ۱۶۰. test_lens_shading_and_color_uniformity_lens_shading_result.
صحنه آزمایشی مبتنی بر رایانه لوحی با گاموت گسترده
scene_wide_gamut
scene_wide_gamut قابی مستطیلی است که به چهار ربع مساوی تقسیم شده است،
هرکدام با رنگی متفاوت پر شده است. برای این کار، رایانه لوحی باید نمودار را در گاموت گسترده نمایش دهد و DUT عکسی با گاموت گسترده از صفحهنمایش بگیرد.
این آزمایشها تأیید میکنند که تصویر ثبتشده از نمایه رنگ و محدوده رنگ صحیح پیروی میکند.
test_display_p3
ضبط Display P3 را در JPEG بااستفاده از میانای برنامهسازی کاربردی ColorSpaceProfiles آزمایش میکند. آزمایش میکند
که JPEG ضبطشده دارای نمایه ICC مناسب در سرصفحه خود باشد، و
تصویر حاوی صدک خاصی از رنگهای خارج از طیف sRGB باشد.
میاناهای برنامهسازی کاربردی آزمایششده:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
قبول: JPEG حاوی نمایه ICC از نوع Display P3 و بیشاز ۱ درصد رنگ خارج از طیف sRGB است.
شکل ۱۶۱. نمونه test_display_p3.