גרסת Android 13 כוללת מספר שינויים ב-Camera ITS. בנוסף לשינויים מצטברים כמו עדכונים של גרסאות Python וחבילות ועדכוני חומרה לבדיקות, Android 13 תומך בבדיקות וידאו.
בדף הזה מפורטים השינויים ב-Camera ITS ב-Android 13. השינויים מתחלקים לשבע קטגוריות רחבות:
- גרסאות Python וחבילות
- תוספות לקובץ התצורה
- בדיקת שינויים
- מבחנים חדשים שמבוססים על טאבלטים
- בדיקת סרטונים
- עדכונים ותוספות לחומרה
- תמיכה בבדיקות של מכשירים מתקפלים
גרסאות Python וחבילות
ב-Android 13 יש תמיכה בגרסאות Python הבאות, בנוסף לגרסאות ולספריות Python הנתמכות ב-Android 12:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
תוספות לקובץ התצורה
בגלל ההוספה של בקרת התאורה לבדיקה test_auto_flash.py, צריך להוסיף לקובץ config.yml שני פרמטרים נוספים עבור הבקר וערוץ התאורה. כדי לזהות אם המכשיר שנבדק (DUT) הוא מכשיר מתקפל או לא, בקובץ config.yml צריך להוסיף פרמטר שלישי נוסף לשני הקטעים: tablet-based ו-sensor fusion.
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
בדיקת שינויים
scene1_1/test_black_white.py
בtest_black_whiteבדיקה יש בדיקה של רוויית הערוץ, שמתבצעת באופן עקבי עם הגרסאות הקודמות של Android. המשמעות היא שרמת ה-API הראשונה הנדרשת לבדיקת רוויית הערוץ היא Android 10.
scene1_2/test_yuv_plus_raw.py
בבדיקה test_yuv_plus_raw יש טיפול בחיישנים שאינם 16:9 או 4:3 כדי לספק תמיכה טובה יותר ב-RAW. אם הבדיקה לא מוצאת פורמט משותף בין פורמט ה-RAW של החיישן לבין פורמטי הלכידה של YUV, הבדיקה משווה את לכידת ה-RAW ללכידת ה-YUV הגדולה ביותר, גם אם יחסי הגובה-רוחב שונים.
scene2_a/test_faces.py
הקוד test_faces עבר רפקטורינג ל-test_num_faces.
scene2_a/test_num_faces.py
בבדיקה test_num_faces, המערכת מטפלת בחיתוך החיישן וממקמת את המלבנים של הפנים בצורה נכונה בתמונות שצולמו במצלמת UW ונחתכו.
scene3/test_lens_position.py
הבדיקה test_lens_position הוצאה משימוש ב-Android 13.
scene6/test_zoom.py
הבדיקה test_zoom עברה שינוי מבנה כדי לאפשר בדיקה קלה יותר של מערכות עם שלוש וארבע מצלמות. אם המצלמה עוברת את הבדיקה בצורה תקינה בטווח יחס של פי 10 בזום,
הבדיקה מסתיימת בצורה תקינה. כך אפשר לבצע בדיקת זום במרחק אחד מהתרשים.
scene_change/test_scene_change.py
הבדיקה test_scene_change הוצאה משימוש ב-Android 13.
בדיקות חדשות מבוססות-טאבלט
Android 13 כולל שתי בדיקות חדשות שמבוססות על טאבלטים. שתי הבדיקות נדרשות למכשירים שמושקים עם Android מגרסה 13, אבל הן לא מתבצעות במכשירים שמשדרגים ל-Android מגרסה 13.
| Scene | שם הבדיקה | רמת ה-API הראשונה | תיאור |
|---|---|---|---|
| 2_a | test_auto_flash | 33 | מאשרת הפעלה אוטומטית של הפלאש בסצנות חשוכות. |
| 2_b | test_yuv_jpg_capture_sameness | 33 | מאשרים שצילומי המסך בפורמטים YUV ו-JPEG עדיין זהים ברמת הביטים. |
scene2_a/test_auto_flash.py
Android 13 מוסיפה את הבדיקה test_auto_flash.
פרמטרים
-
flash: דילוג על הבדיקה אם Flash לא זמין.
שיטה
בבדיקה מוגדרת בקשת הצילום לפלאש אוטומטי, ומוצג סצנה שנדרש בה אירוע פלאש. התאורה במתקן הבדיקה ובטאבלט מושבתת כדי להציג סצנה חשוכה לאלגוריתם של החשיפה האוטומטית. הבדיקה מגדירה רצף של NUM_FRAMES צילומים עם הפעלה אוטומטית של הפלאש. אם ההגדרה AE_STATE מחזירה FLASH_REQUIRED, הבדיקה מאמתת שהבזק מופעל בצילומים.
אפשר לשלוט בתאורה באופן ידני כשמוצגת הנחיה, או באופן אוטומטי באמצעות בקר Arduino עם תוסף לשליטה בתאורה שנוסף לבדיקות אוטומטיות. תיקיית כלי עזר חדשה lighting_control_utils מרכזת את הקוד לשליטה בתאורה בבדיקות.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 מוסיף את test_yuv_jpeg_capture_sameness
הבדיקה.
פרמטרים
-
streamUseCase: קובע אם המצלמה תומכת בתרחיש השימוש בשידור. -
android.jpeg.quality: הגדרת איכות JPEG ל-100.
שיטה
בבדיקה הזו מצולמות שתי תמונות בפורמטים הנפוצים הגדולים ביותר של YUV ו-JPEG, עם יחס גובה-רוחב זהה לפורמט ה-JPEG הגדול ביותר, ברזולוציה שלא עולה על 1,920x1,440. הבדיקה מגדירה את jpeg.quality ל-100 ומתעדת בקשה של משטח כפול. לאחר מכן, הוא ממיר את שתי התמונות למערכי RGB ומחשב את ההפרש התלת-ממדי של שורש ממוצע הריבועים (RMS) בין שתי התמונות. טווח הטולרנטיות להפרש מוגדר כ-1%.
בדיקת סרטונים
ב-Camera ITS נוספה תמיכה בבדיקות וידאו ב-Android 13.
ב-Android 13 נוספו הבדיקות הבאות:
| Scene | שם הבדיקה | רמת ה-API הראשונה | תיאור |
|---|---|---|---|
| 4 | test_preview_stabilization_fov | 33 | מוודאים שהתצוגה המקדימה של הסרטון לא נחתכת יותר מדי כשההגדרה 'ייצוב' מופעלת. |
| 4 | test_video_aspect_ratio_and_crop | 33 | אישור של שדה הראייה, יחס הגובה-רוחב והחיתוך של פורמטי הווידאו. |
| sensor_fusion | test_preview_stabilition | 33 | מאשרים שייצוב התצוגה המקדימה פועל. |
| sensor_fusion | test_video_stabilition | 33 | מאשרים שייצוב הווידאו פועל. |
scene4/test_preview_stabilization_fov.py
Android 13 מוסיף את test_preview_stabilization_fov
הבדיקה. בבדיקה הזאת המערכת בודקת את הגדלים הנתמכים של התצוגה המקדימה כדי לוודא ששדה הראייה לא נחתך בצורה לא מתאימה.
שיטה
במהלך הבדיקה מצולמים שני סרטונים, אחד עם ייצוב בתצוגה מקדימה מופעל ואחד עם ייצוב בתצוגה מקדימה מושבת. מכל סרטון נבחרת מסגרת מייצגת, והיא נבדקת כדי לוודא ששינויי שדה הראייה בשני הסרטונים הם במסגרת המפרט.
באופן ספציפי, הבדיקה בודקת את הפרמטרים הבאים עם ייצוב התצוגה המקדימה וללא ייצוב התצוגה המקדימה:
- העיגול נשאר עגול.
- מרכז העיגול נשאר יציב.
- הגודל של העיגול משתנה ב-20% לכל היותר, כלומר שדה הראייה משתנה ב-20% לכל היותר.
scene4/test_video_aspect_ratio_and_crop.py
Android 13 מוסיף את test_video_aspect_ratio_and_crop
הבדיקה. בדומה לtest_aspect_ratio_and_cropבדיקה של צילומי מסך, הבדיקה הזו בודקת את פורמטי הווידאו הנתמכים כדי לוודא שפריימים של סרטונים לא נמתחים או נחתכים בצורה לא מתאימה.
כל איכויות הווידאו שדווחו על ידי המשתמשים נבדקות. בנוסף, אם המצלמה תומכת בווידאו HLG10, מתבצע בדיקה של וידאו באיכות 10 ביט.
ב-Android 13 נוסף ה-method get_available_video_qualities
ל-its_session_utils. כדי לשתף קוד משותף עם בדיקות קיימות, Android 13 כולל גם שתי פונקציות עזר חדשות, image_fov_utils ו-video_processing_utils.
שיטה
במהלך הבדיקה מצולמת תמונת הפניה בפורמט RAW או בפורמט JPEG ברזולוציה הכי גבוהה אם לא נתמך RAW. מתוך תמונת ההפניה, נקבעים הגודל והמיקום של העיגול. לאחר מכן מצלמים סרטונים קצרים בכל איכויות הווידאו הנתמכות. מסגרת ההפניה הסופית מחולצת מכל איכות סרטון. ממסגרת ההפניה, שדה הראייה (FoV), המיקום במרכז (חיתוך) ויחס הגובה-רוחב מחושבים לכל איכות וידאו.
לחישוב שדה הראייה, הבדיקה משווה בין גודל העיגול של פריימים בסרטון לבין גודל העיגול שחושב מתוך גדלי התמונות ופורמט הסרטון של תמונת הייחוס. בבדיקת החיתוך, המערכת משווה את המיקום של מרכז הפריים של הסרטון למיקום של מרכז תמונת ההפניה. בבדיקה של יחס הגובה-רוחב, המערכת משתמשת בסצנה שבה יש עיגול שחור גדול על רקע לבן, כדי לקבוע את יחס הגובה-רוחב של העיגול ולוודא שהפריים לא מעוות.
sensor_fusion/test_preview_stabilization.py
ב-Android 13 נוספה test_preview_stabilization בדיקה,
שבודקת את כל איכויות התצוגה המקדימה הנתמכות עד 1920x1080. הבדיקה משתמשת במתקן הבדיקה sensor fusion ודורשת את בקר sensor fusion החדש מגרסה 2 או שדרוג קושחה של גרסאות קודמות של בקר Arduino. פרטים נוספים על בקר המגע החדש מופיעים במאמר עדכונים ותוספות לציוד.
שיטה
הטלפון מוזז לאט בזווית של כ-15 מעלות כשההגדרה 'ייצוב התצוגה המקדימה' מופעלת. אחר כך משווים את הסיבוב של התמונות לסיבוב של הג'ירוסקופ.
sensor_fusion/test_video_stabilization.py
ב-Android 13 נוספה הבדיקה test_video_stabilization,
שבודקת איכויות וידאו נתמכות עד 1920x1080. לא נכללת איכות של סרטון ברזולוציה נמוכה של QCIF. הבדיקה משתמשת במתקן הבדיקה של מיזוג חיישנים, ומחייבת את בקר מיזוג החיישנים החדש מגרסה 2 או שדרוג קושחה של גרסאות קודמות של בקר Arduino. פרטים נוספים על בקר המגע החדש מופיעים במאמר עדכונים ותוספות לציוד.
שיטה
מתקן הבדיקה מזיז את הטלפון לאט בזווית של כ-15 מעלות, כשייצוב התצוגה המקדימה מופעל. אחר כך משווים את הסיבוב של התמונות לסיבוב של הג'ירוסקופ.
עדכונים ותוספות לחומרה
Android 13 כולל שדרוג לבקר איחוד החיישנים מגרסה 2 שמבוסס על Arduino. השדרוג הזה כולל שינויים בחומרה ובקושחה. השדרוג מאפשר לבקר להגדיר את מהירות הסיבוב ואת בקרת התאורה. השדרוג כולל גם מגן חדש (מוצג באיור 1), שמספק שלושה ערוצים של סיבוב ושלושה ערוצים של שליטה בתאורה.
איור 1. Arduino shield rev2.0 עם סיבוב ושליטה בתאורה
בנוסף, ב-Android 13, צריך לעדכן את הקושחה של בקרים קיימים כדי להפעיל את השליטה במהירות הסיבוב. אפשר להוריד את הקושחה הזו מהכתובת:
מידע נוסף על הבקר החדש זמין במאמר בנושא בקר איחוד חיישנים ב-Android 13.
תמיכה בבדיקות של מכשירים מתקפלים
Android 13 כולל תמיכה בבדיקות למכשירים מתקפלים. כדי להפעיל את multi-camera API במכשירים מתקפלים, צריך את מצב הטלפון (Folded או Unfolded) במהלך הבדיקה.
כדי להפעיל את האפשרות 'שליחת בקשות לבירור מצב הטלפון' לכל המכשירים הנבדקים, כולל טלפונים לא מתקפלים, מריצים את פקודת ה-adb הבאה אחרי שהמכשיר הנבדק מחובר למארח.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier