מצלמת HAL3

שכבת הפשטת החומרה של המצלמה של אנדרואיד (HAL) מחברת את ממשקי ה- API של מסגרת המצלמה ברמה הגבוהה יותר ב- android.hardware.camera2 למנהל ההתקן ולחומרה הבסיסית שלך. אנדרואיד 8.0 הציגה את טרבל , והעבירה את ה- API של CameraHal לממשק יציב המוגדר על ידי שפת תיאור הממשק HAL (HIDL). אם פיתחת בעבר מודול HAL ומצלמת מנהל התקן עבור Android 7.0 ומטה, שים לב לשינויים משמעותיים בצנרת המצלמה.

תכונות HAL3 של המצלמה

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

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

ה- API מעצב את תת מערכת המצלמה כצינור הממיר בקשות נכנסות לצילומי מסגרות למסגרות, על בסיס 1: 1. הבקשות עוטפות את כל פרטי התצורה אודות לכידה ועיבוד של מסגרת. זה כולל רזולוציה ופורמט פיקסל; חיישן ידני, בקרת עדשות ופלאש; מצבי הפעלה 3A; RAW-> בקרת עיבוד YUV; הפקת סטטיסטיקה; וכולי.

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

  • אובייקט תוצאה עם מטא-נתונים על הלכידה.
  • מאגרים של נתוני תמונה אחד עד N, כל אחד לשטח היעד שלו.

קבוצת משטחי הפלט האפשריים מוגדרת מראש:

  • כל משטח מהווה יעד לזרם מאגרי תמונה ברזולוציה קבועה.
  • ניתן להגדיר רק מספר קטן של משטחים כפלטים בו זמנית (~ 3).

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

דגם נתוני מצלמה

איור 1. מודל הפעלת ליבת מצלמה

סקירה כללית על מצלמת HAL1

גרסה 1 של תת מערכת המצלמה תוכננה כקופסה שחורה עם בקרות ברמה גבוהה ושלושת מצבי ההפעלה הבאים:

  • תצוגה מקדימה
  • הקלטת וידאו
  • עדיין ללכוד

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

דיאגרמת חסימות מצלמה

איור 2. רכיבי מצלמה

אנדרואיד 7.0 ממשיך לתמוך במצלמת HAL1 מכיוון שמכשירים רבים עדיין מסתמכים עליה. בנוסף, שירות מצלמות האנדרואיד תומך ביישום שני HALs (1 ו- 3), דבר שימושי כאשר רוצים לתמוך במצלמה קדמית פחות מסוגלת עם מצלמת HAL1 ומצלמה מתקדמת יותר לאחור עם מצלמת HAL3.

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