פלט מצלמה באיכות 10 ביט

במכשירים עם Android מגרסה 13 ואילך, מערכת Android תומכת בפלט של מצלמה עם 10 ביט באמצעות פרופילים של טווח דינמי שאפשר להגדיר אותם על ידי לקוח המצלמה כחלק מהגדרת הסטרימינג. יצרני מכשירים יכולים להוסיף תמיכה בפרופילים של טווח דינמי של 10 ביט, כמו HLG10, ‏ HDR 10, ‏ HDR 10+‎ ו-Dolby Vision.

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

לקוחות של מצלמות יכולים להגדיר שילובים של סטרימינג באמצעות קריאה ל-setDynamicRangeProfile. מידע נוסף על שילובים חובה של זרמי פלט זמין בטבלה 10-bit output additional guaranteed configurations במאמר Regular capture.

דרישות

כדי לתמוך בפלט של מצלמה עם 10 ביט, במכשיר צריך להיות חיישן מצלמה עם 10 ביט או יותר, עם תמיכה מתאימה ב-ISP. פרטים על דרישות התאימות שקשורות לתמיכה ב-10 ביט מופיעים בקטע 7.5. מצלמות ב-CDD.

הטמעה

כדי לספק תמיכה בפלט של מצלמה באיכות 10 ביט, יצרני המכשירים צריכים לבצע את השילובים הבאים של Camera AIDL HAL:

  • הכללה של ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT ביכולות המצלמה.
  • מאכלסים את ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP בכל פרופילי הטווח הדינמי הנתמכים ואת מפת הסיביות של האילוצים שלהם. הפרופיל HLG10 צריך להיות נתמך. בנוסף, צריך לכלול פרופיל מומלץ של טווח דינמי כדי להודיע ללקוחות המצלמה על הפורמט האופטימלי שנתמך.
  • צריך לוודא שיש תמיכה בערך הדינמי של פרופיל הטווח במהלך הגדרת הסטרימינג לסטרימינג בפורמט P010 או בפורמט שמוגדר על ידי ההטמעה (ImageFormat.PRIVATE).
  • בהתאם לפרופיל הטווח הדינמי, מגדירים את מאגר המטא-נתונים הסטטי או הדינמי של מאגרי Gralloc 4 שעברו עיבוד לפני שליחת הודעה לשירות המצלמה.

לפרטים נוספים על פלט מצלמה באיכות 10 ביט ב-Camera HAL, אפשר לעיין במאמרים הבאים ב-metadata_definitions.xml:

לעיון בהטמעה לדוגמה של Camera HAL שתומכת בפלט מצלמה באיכות 10 ביט, אפשר לעבור אל /hardware/google/camera/devices/EmulatedCamera/hwl.

אימות

כדי לאמת את ההטמעה של פלט המצלמה ב-10 ביט ולוודא שאפליקציות של צד שלישי יכולות להפעיל את התכונה, מומלץ לבצע את שלושת שלבי האימות הבאים.

כדי לבצע אימות ויזואלי של פלט המצלמה באיכות 10 ביט, נניח שהמכשיר תומך בהצגת HDR (תצוגה של 1,000 ניטים ומעלה), ואפליקציית הצפייה בווידאו (לדוגמה, Google Photos) תומכת בהפעלה של וידאו HDR.

בדיקת התקינות הפונקציונלית של ה-API

כדי לבדוק את התקינות הפונקציונלית של פלט המצלמה ב-10 ביט, מריצים את הבדיקות הבאות של CTS,‏ ITS של המצלמה ו-VTS:

השוואה בין המצלמה המובנית לבין אפליקציה של צד שלישי

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

הצעות לסצנות להשוואה

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

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

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

השוואה בין טווח דינמי רגיל לבין טווח דינמי גבוה

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

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

  • בסצנה עם תאורה בינונית עד נמוכה, האזורים הבהירים של הנר או של מקור אור קטן מוצגים בבהירות מקסימלית של הצג (יכול להיות עד 1,000‎ nit) בקליפ באיכות HDR, ומוצגים בבהירות מקסימלית של SDR (בערך 100‎ nit) בקליפ באיכות SDR. בסרטון ה-HDR, האזורים הבהירים צריכים לבלוט מהמסך, ולשקף את התפיסה של המשתמש לגבי הטווח הדינמי האמיתי של הסצנה. בהשוואה לקליפ HDR, קליפ SDR צריך להיראות שטוח ופחות בהיר.
  • בסצנת הפלט הבהירה, בהתאם לכוונון של המכשיר, קליפ ה-HDR מציג הבדל ניכר בבהירות המסך בהשוואה לקליפ ה-SDR. בסרטון באיכות HDR, הבהירות של המסך בסצנה כולה (בהתאם למרווח הדינמי) צריכה להיות גבוהה יותר, למשל עד 800 ניטים, ואפילו יותר מכך באזורים הבהירים כמו פגושי הכרום, בסביבות הבהירות המקסימלית.
  • בצילום בתוך הבית בטווח דינמי נמוך, קליפים באיכות HDR ו-SDR דומים בצבע ובגוון, אבל יכול להיות שהקליפ באיכות HDR יהיה בהיר יותר מהקליפ באיכות SDR. ה-HDR לא צריך להיות כהה יותר מה-SDR. אם אפשרויות ההתאמה הופכות את זה לבלתי אפשרי, צריך לוודא שאופן הפעולה של אפליקציית הצד השלישי זהה לאופן הפעולה של אפליקציית המצלמה המקורית.