גרסת 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
צריך להוסיף פרמטר שלישי נוסף שחובה להוסיף גם לקטע שמבוסס על טאבלט וגם לקטע של שילוב החיישנים.
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
ב-Android 13, בדיקת test_lens_position
הוצאה משימוש.
scene6/test_zoom.py
הבדיקה test_zoom
עברה שינוי מבנה כדי לאפשר בדיקה קלה יותר של מערכות עם שלוש וארבע מצלמות. אם המצלמה עוברת את הבדיקה בצורה תקינה בטווח יחס של פי 10 בזום,
הבדיקה מסתיימת בצורה תקינה. כך אפשר לבצע בדיקות זום במרחק אחד מהתרשים.
scene_change/test_scene_change.py
ב-Android 13, בדיקת test_scene_change
הוצאה משימוש.
בדיקות חדשות לטאבלטים
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 ומתעדת בקשה כפולה של Surface. לאחר מכן, הפונקציה ממירה את שתי התמונות למערכי RGB ומחשבת את השורש התלת-ממדי של ממוצע הריבועים (RMS) של ההבדל בין שתי התמונות. טווח הטולרנטיות של ההפרש מוגדר כ-1%.
בדיקות של מודעות וידאו
ב-Android 13, מערכת Camera ITS תומכת בבדיקות וידאו.
ב-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
test,
שבודק את כל איכויות התצוגה המקדימה הנתמכות עד 1920x1080. הבדיקה משתמשת במתקן הבדיקה של מיזוג חיישנים ודורשת את בקר מיזוג החיישנים החדש מגרסה 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 עם סיבוב ושליטה בתאורה
בנוסף, בגרסה 13, צריך לעדכן את הקושחה של בקרים קיימים כדי להפעיל את השליטה במהירות הסיבוב. אפשר להוריד את הקושחה הזו מהכתובת:
מידע נוסף על בקר חדש זמין במאמר בקר איחוד חיישנים ב-Android 13.
תמיכה בבדיקות של מכשירים מתקפלים
Android 13 כולל תמיכה בבדיקות למכשירים מתקפלים. כדי להפעיל את multi-camera API במכשירים מתקפלים, צריך את מצב הטלפון (Folded
או Unfolded
) במהלך הבדיקה.
כדי להפעיל את האפשרות 'שליחת בקשות לבירור מצב הטלפון' לכל המכשירים שנבדקים, כולל טלפונים לא מתקפלים, מריצים את פקודת ה-adb הבאה אחרי שהמכשיר שנבדק מחובר למארח.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier