במהדורת 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
- כרית 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
הוספות של קובצי תצורה
בגלל הוספת בקרת התאורה לבדיקת test_auto_flash.py
, צריך להוסיף לקובץ config.yml
שני פרמטרים נוספים עבור הבקר וערוץ התאורה. כדי לזהות אם המכשיר בבדיקה (DUT) הוא מתקפל או לא, הקובץ config.yml
דורש פרמטר שלישי נוסף שצריך להוסיף גם לקטע ה-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.
segment6/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 | בדיקה_auto_Flash | 33 | אישור שסצנות כהות יפעילו הבהוב אוטומטי. |
2_b | בדיקה_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.
מערכת 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 | בדיקה_וידאו_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. הבדיקה מתבצעת באמצעות חליפת הבדיקה של שילוב חיישנים, והיא דורשת את בקר השילוב של חיישנים בגרסה 2 החדשה או עדכון קושחה של גרסאות קודמות של בקרי Arduino. פרטים נוספים על הבקר החדש מופיעים במאמר עדכונים והוספות לחומרה.
שיטה
הטלפון מוסט לאט בזווית של כ-15 מעלות כשהיציבות בתצוגה המקדימה מופעלת. לאחר מכן, המערכת משווה בין הסיבוב של התמונות לבין הסיבוב של הגירוסקופ.
Sen_fusion/test_video_stabilization.py
ב-Android 13 נוספה הבדיקה test_video_stabilization
, שבה נבדקות איכויות וידאו נתמכות עד 1920x1080. איכות וידאו ברזולוציה נמוכה של QCIF לא נכללת. הבדיקה מתבצעת באמצעות חליפת הבדיקה של שילוב חיישנים, ומומלץ להשתמש בגרסת השליטה החדשה של שילוב חיישנים (Rev2) או בעדכון קושחה של גרסאות קודמות של בקר Arduino. פרטים נוספים על הבקר החדש מופיעים במאמר עדכונים והוספות לחומרה.
שיטה
ערכת הבדיקה מזיזה את הטלפון לאט על פני זווית של כ-15 מעלות, תוך הפעלת ייצוב התצוגה המקדימה. לאחר מכן, משווים בין הסיבוב של התמונות לבין הסיבוב של הגירוסקופ.
עדכונים והוספות לחומרה
Android 13 כולל שדרוג לבקר המיזוג של חיישנים מהגרסה השנייה שמבוסס על Arduino. השדרוג הזה כולל שינויים בחומרה ובקושחת. השדרוג מאפשר למכשיר הבקר להגדיר את מהירות הסיבוב ואת בקרת הברק. השדרוג כולל גם מגן חדש (מוצג באיור 1), שמספק שלושה ערוצי סיבוב ושלושה ערוצים של בקרת תאורה.
איור 1. Arduino shield rev2.0 עם בקרת סיבוב תאורה
בנוסף, עבור 13, יש לעדכן את הקושחה של הבקרים הקיימים כדי לאפשר בקרת מהירות הסיבוב. אפשר להוריד את הקושחה הזו מהמקומות הבאים:
מידע נוסף על הבקר החדש זמין במאמר בקר למיזוג חיישנים ב-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