פרמטרים של הפעלה

תכונת פרמטרי ההפעלה מפחיתה עיכובים על-ידי מתן אפשרות ללקוחות מצלמה להגדיר באופן פעיל את תת-קבוצת הפרמטרים היקרים של בקשות, כלומר, פרמטרי הפעלה, כחלק משלב האתחול של הפעלת הלכידה. עם תכונה זו, יישומי HAL שלך מקבלים את פרמטרי הלקוח במהלך שלב תצורת הזרם במקום בקשת הלכידה הראשונה ויכולים, בהתאם לערכים שלהם, להכין ולבנות את הצינור הפנימי בצורה יעילה יותר.

ב-Android 10, אתה יכול לשפר את הביצועים על ידי שימוש בתכונת שאילתת תצורת ההפעלה האופציונלית לקבלת שליטה רבה יותר על לוגיקית ההגדרה מחדש של פרמטר ההפעלה הפנימי. למידע נוסף, ראה שאילתת תצורה מחדש של הפעלה .

דוגמאות ומקור

יישום פרמטר הפעלה של הפניה הוא כבר חלק מה- CameraHal . HAL זה משתמש ב-Hal API מדור קודם. ה-CameraHal המקושר שמיישם את ה-API של המצלמה HIDL חייב להשתמש בערך ה-HIDL sessionParams המתאים כדי לגשת לפרמטרים חדשים של הפעלה נכנסת במהלך תצורת הזרם.

לקוחות מצלמה יכולים לשאול את המפתחות של כל פרמטרי ההפעלה הנתמכים על ידי קריאה ל- getAvailableSessionKeys() ובסופו של דבר להגדיר את הערכים ההתחלתיים שלהם באמצעות setSessionParameters() .

יישום

הטמעת CameraHal שלך חייבת לאכלס את ANDROID_REQUEST_AVAILABLE_SESSION_KEYS בתוך המטא נתונים של המצלמה הסטטית המתאימה ולספק תת-קבוצה של ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS , המכילה רשימה של מפתחות שקשה להחיל לכל מסגרת ויכולים לגרום להשהיית אורך חיים בלתי צפויה במהלך ה-capture.

דוגמאות טיפוסיות כוללות פרמטרים הדורשים הגדרה מחדש של חומרה שגוזלת זמן או שינוי צנרת פנימית של המצלמה. עדיין ניתן להפעיל שליטה על פרמטרי הפעלה בבקשות לכידה, אך לקוחות צריכים להיות מודעים ולצפות לעיכובים ביישום שלהם.

המסגרת מנטרת את כל הבקשות הנכנסות ואם היא מזהה שינוי בערך של פרמטר הפעלה, היא מגדירה מחדש את המצלמה באופן פנימי. תצורת הזרם החדשה שהועברה ל-CameraHal כוללת לאחר מכן את ערכי פרמטרי ההפעלה המעודכנים, המשמשים להגדרת צינור המצלמה בצורה יעילה יותר.

התאמה אישית

אתה יכול להגדיר תגים ברשימת פרמטרי ההפעלה הזמינים שמאוכלסת בצד CameraHal. תכונה זו אינה פעילה אם CameraHal משאירה את רשימת הפרמטרים הזמינים של הפעלה ריקה.

מַתַן תוֹקֵף

CTS כולל את המקרים החדשים הבאים לבדיקת פרמטרי הפעלה:

באופן כללי, לאחר שפרמטר מסוים הוא חלק מרשימת מפתחות הפגישה, הערך הנוכחי שלו נכלל כחלק מפרמטרי הפגישה המועברים במהלך תצורת הזרם בשכבת HAL.

יש לבחור בקפידה את פרמטרי הפגישה. הערכים לא אמורים להשתנות לעתים קרובות, אם בכלל, בין תצורות זרם. פרמטרים המשתנים לעתים קרובות, כגון כוונת לכידה, אינם מתאימים והוספתם לרשימת פרמטרי הפגישה עלולה לגרום לכשלים ב-CTS עקב קונפיגורציה פנימית מופרזת.

שאילתת תצורה מחדש של הפעלה

אנדרואיד 10 מציגה תכונה אופציונלית של שאילתת תצורה מחדש של הפעלה כדי לשפר את הביצועים מכיוון שתצורות מחדש של זרם פנימי הנובעות משינויים של ערכי הפעלה יכולים להפחית את הביצועים. כדי להתמודד עם החשש הזה, HIDL ICameraDeviceSession גרסה 3.5 ומעלה תומכת בשיטת isReconfigurationRequired , המספקת שליטה עדינה על לוגיקית ההגדרה מחדש של פרמטר ההפעלה הפנימי. באמצעות שיטה זו, תצורה מחדש של זרם יכולה להתרחש בדיוק בעת הצורך.

הארגומנטים עבור isReconfigurationRequired מספקים את המידע הנדרש לגבי כל שינוי פרמטר הפעלה ממתין, ומאפשרים סוגים שונים של התאמות אישיות ספציפיות למכשיר.

תכונה זו מיושמת רק בשירות המצלמה וב-HAL של המצלמה. אין ממשקי API הפונה לציבור. אם תכונה זו מיושמת, לקוחות מצלמה אמורים לראות שיפורים בביצועים כאשר הם עובדים עם פרמטרי הפעלה.

יישום

כדי לתמוך בשאילתות הגדרה מחדש של הפעלה, עליך ליישם את השיטה isReconfigurationRequired כדי לבדוק אם נדרשת הגדרה מחדש של הזרם עבור ערכי פרמטרי הפעלה חדשים.

אם הלקוח משנה את הערך של פרמטר הפעלה מפורסם כלשהו, ​​מסגרת המצלמה קוראת לשיטת isReconfigurationRequired . בהתאם לערכים הספציפיים, ה-HAL מחליט אם נדרשת תצורה מחדש של זרם מלאה. אם ה-HAL מחזיר false , מסגרת המצלמה מדלגת על ההגדרה מחדש הפנימית. אם ה-HAL מחזיר true , המסגרת מגדירה מחדש את הזרמים ומעבירה את ערכי פרמטר ההפעלה החדשים בהתאם.

ניתן לקרוא לשיטת isReconfigurationRequired על ידי המסגרת זמן מה לפני הגשת בקשה עם פרמטרים חדשים ל-HAL, וניתן לבטל את הבקשה לפני הגשתה. לכן, אסור ל-HAL להשתמש בקריאת שיטה זו כדי לשנות את התנהגותו בשום צורה.

יישום HAL חייב לעמוד בדרישות הבאות:

  • המסגרת חייבת להיות מסוגלת לקרוא למתודה isReconfigurationRequired בכל עת לאחר תצורת הפעלה פעילה.
  • לא צריכה להיות השפעה על הביצועים של בקשות ממתינות למצלמה. בפרט, אסור שיהיו תקלות או עיכובים במהלך הזרמת מצלמה רגילה.

ההתקן והטמעת HAL חייבים לעמוד בדרישות הביצועים הבאות:

  • אין לשנות את הגדרות מצלמת החומרה והתוכנה.
  • אסור שתהיה השפעה גלויה למשתמש על ביצועי המצלמה.

השיטה isReconfigurationRequired לוקחת את הארגומנטים הבאים:

  • oldSessionParams : פרמטרי הפעלה מההפעלה הקודמת. בדרך כלל פרמטרי הפגישה הקיימים.
  • newSessionParams : פרמטרי הפעלה חדשים המוגדרים על ידי הלקוח.

קודי סטטוס ההחזרה הצפויים הם:

  • OK : נדרשת שאילתה להגדרה מחדש מוצלחת.
  • METHOD_NOT_SUPPORTED : התקן המצלמה אינו תומך בשאילתת ההגדרה מחדש.
  • INTERNAL_ERROR : לא ניתן להשלים את שאילתת התצורה מחדש עקב שגיאה פנימית.

ערכי ההחזרה הם:

  • true : נדרשת תצורה מחדש של זרם.
  • false : אין צורך בהגדרה מחדש של זרם.

כדי להתעלם משאילתת תצורה מחדש של הפעלה, ה-HAL מחזיר METHOD_NOT_SUPPORTED או false . זה גורם להתנהגות ברירת המחדל של שירות המצלמה שבה מופעלת תצורה מחדש של הזרם בכל שינוי של פרמטר הפעלה.

מַתַן תוֹקֵף

ניתן לאמת את תכונת שאילתת התצורה מחדש של ההפעלה באמצעות מקרה הבדיקה של VTS ב- CameraHidlTest#configureStreamsWithSessionParameters .