במהדורת Android 13 יש כמה שינויים ב-Camera ITS. בנוסף לשינויים מצטברים כמו גרסאות מעודכנות של Python ושל חבילות ועדכוני חומרה לבדיקה, ב-Android 13 יש תמיכה בבדיקת וידאו.
בדף הזה נסכם את השינויים ב-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
, שצריך להוסיף גם לקטע של המכשיר מבוסס-הטאבלט וגם לקטע של שילוב החיישנים.
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
: דילוג על הבדיקה אם הפלאש לא זמין.
שיטה
הבדיקה מגדירה את בקשת הצילום כך שתופעל באופן אוטומטי פלאש, ומציגה סצנה שדורשת אירוע פלאש. התאורה במתקן הבדיקה ובטאבלט מושבתת כדי להציג סצנה חשוכה לאלגוריתם של החשיפה האוטומטית. הבדיקה מגדירה רצף של 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 הגדול ביותר, ברזולוציה של עד 1920x1440. הבדיקה מגדירה את jpeg.quality
לערך 100 ומצלמת בקשה עם שני משטחים. לאחר מכן, המערכת ממירה את שתי התמונות למערכים של RGB ומחשבת את ההפרש הממוצע הריבועי (RMS) התלת-ממדי בין שתי התמונות. ערך הסף להבדל מוגדר ל-1%.
בדיקת סרטונים
Camera ITS מוסיף תמיכה בבדיקת וידאו ב-Android 13.
בגרסה 13 של Android נוספו הבדיקות הבאות:
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 נוספה השיטה 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. הבדיקה מתבצעת באמצעות חליפת הבדיקה של שילוב החיישנים, והיא דורשת את בקר השילוב של החיישנים בגרסה 2 החדשה או עדכון קושחה של גרסאות קודמות של בקרי Arduino. פרטים נוספים על השליטה החדשה מופיעים במאמר עדכונים והוספות לחומרה.
שיטה
הטלפון מוסט לאט בזווית של כ-15 מעלות כשהיציבות בתצוגה המקדימה מופעלת. לאחר מכן, המערכת משווה בין הסיבוב של התמונות לבין הסיבוב של הגירוסקופ.
sensor_fusion/test_video_stabilization.py
ב-Android 13 נוספה הבדיקה test_video_stabilization
, שבה נבדקות איכויות וידאו נתמכות עד 1920x1080. איכות וידאו ברזולוציה נמוכה של QCIF לא נכללת. הבדיקה מתבצעת באמצעות חליפת הבדיקה של שילוב חיישנים, ומומלץ להשתמש בגרסת השליטה החדשה של שילוב חיישנים (R2) או בעדכון קושחה של גרסאות קודמות של בקר Arduino. פרטים נוספים על הבקר החדש מופיעים במאמר עדכונים והוספות לחומרה.
שיטה
במכשיר הבדיקה, הטלפון זז לאט בזווית של כ-15 מעלות כשהיציבות בתצוגה המקדימה מופעלת. לאחר מכן, משווים בין הסיבוב של התמונות לבין הסיבוב של הגירוסקופ.
עדכונים והוספות לחומרה
Android 13 כולל שדרוג לבקר המיזוג של חיישנים מהדורה 2 שמבוסס על Arduino. השדרוג הזה כולל שינויים בחומרה ובקושחת. השדרוג מאפשר למכשיר הבקר להגדיר את מהירות הסיבוב ואת בקרת הברק. השדרוג כולל גם מגן חדש (שמוצג באיור 1), שמספק שלושה ערוצים של סיבוב ושלושה ערוצים של בקרת תאורה.
איור 1. Arduino shield rev2.0 עם בקרת סיבוב ותאורה
בנוסף, בגרסת 13 צריך לעדכן את הקושחה של בקרי ה-USB הקיימים כדי לאפשר בקרה על מהירות הסיבוב. אפשר להוריד את הקושחה הזו מהכתובות הבאות:
מידע נוסף על הבקר החדש זמין במאמר בקר למיזוג חיישנים ב-Android 13.
תמיכה בבדיקות של מכשירי טלפונים מתקפלים
ב-Android 13 יש תמיכה בבדיקות במכשירים מתקפלים. כדי להפעיל את Multi-camera API במכשירים מתקפלים, צריך להגדיר את מצב הטלפון (Folded
או Unfolded
) במהלך הבדיקה.
כדי להפעיל את הסקרים של מצב הטלפון בכל מכשירי ה-DUT, כולל טלפונים לא מתקפלים, מריצים את פקודת ה-adb הבאה אחרי שמחברים את מכשיר ה-DUT למארח.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier