אחרי שהוצג סרטון עם טווח דינמי גבוה (HDR), שירותי סטרימינג התחילו לשדר סרטוני HDR, עם דגש על חוויית צפייה במסך מלא. אפליקציות של רשתות חברתיות תומכות עכשיו בווידאו באיכות HDR וב-Ultra HDR, מה שמצביע על התעניינות גוברת באימוץ HDR באפליקציות שונות.
תמיכה ב-HDR ב-Android
מערכת Android תומכת בטכנולוגיית HDR בכמה אבני דרך:
Android 7
- תמיכה ראשונית בפענוח קוד של סרטוני HDR ובהצגתם.
- שיפורים מתמשכים ביכולות ה-HDR.
Android 13
- תמיכה מקצה לקצה בצילום, בקידוד ובהצגה של סרטוני HDR.
- הוספנו קומפוזיציה של SDR ו-HDR ביחד, שמגדירה טווחי בהירות שונים שניתנים להצגה בין SDR ל-HDR.
Android 14
- תמיכה בתמונות HDR עם Ultra HDR.
גם התמיכה בצילומי מסך ב-HDR השתנתה והתפתחה.
שיפורים ביכולות של צילומי מסך ב-HDR
בקטע הזה מתואר השיפור של היכולת לצלם צילומי מסך ב-HDR בעדכוני Android.
Android 9
SurfaceFlinger, כלי ההרכבה של הגרפיקה ב-Android, כולל תמיכה בווידאו באיכות HDR. רינדור GPU של סרטוני HDR וצילומי מסך משתמש במיפוי טונים פולינומי מורכב. העקומות של מיפוי הטונים לא תמיד שוות למיפוי הטונים של המסך, ולכן צילומי המסך שונים מהתוכן שמוצג במסך.
Android 13
בלוק העיבוד של SurfaceFlinger ב-GPU כולל תוסף של מיפוי טונים, שמאפשר ליצרן הציוד המקורי לספק הצללה ב-GPU שתתאים לעקומת מיפוי הטונים של התצוגה שלו. צילומי המסך כמעט זהים לתוכן שמוצג במסך, אבל יש ביניהם את ההבדלים הבאים:
- צילומי המסך נשארים בפורמט SDR. לכן, כשמסתכלים על אזורי ה-HDR בצילום המסך לצד סצנת HDR, הם נראים כהים יותר.
- הבהירות של SDR לא מנוהלת, ולכן תוכן SDR בצילום המסך נראה בהיר כמו תוכן HDR.
במילים אחרות, המערכת ממירה כל סרטון HDR שצולם בצילום המסך לסרטון SDR.
Android 14
פורמט Ultra HDR מציב אתגר משמעותי לצילום מסך. בניגוד לסרטונים, המערכת בדרך כלל מעבדת תמונות ב-framebuffer של ממשק המשתמש, ויש לכך שתי השלכות עיקריות:
- אסור שתמונות יעברו עיבוד תמונה, כולל מיפוי טונים, ששונה מהממשק מסביב.
- האפליקציות אחראיות למיפוי טונים מבוסס-מקור בזמן שהן מעבדות את ממשק המשתמש שלהן.
כדי להתמודד עם האתגר הזה, כדאי לשקול שלוש אפשרויות לביצוע צילומי מסך:
- לשמור את פרטי ה-HDR של תמונה בפורמט Ultra HDR, וכתוצאה מכך ממשק המשתמש של האפליקציה בצילום המסך יהיה כהה יותר.
- הפרטים בממשק המשתמש של האפליקציה נשמרים, ולכן יש חיתוך של תמונות Ultra HDR.
- הפשרה היא הבהרת ממשק המשתמש של האפליקציה תוך חיתוך של נקודות השיא ב-HDR.
ב-Android 14 מיושמת הגישה השלישית של הבהרת ממשק המשתמש של האפליקציה וחיתוך האזורים הבהירים ב-HDR.
Android 15-QPR1
SurfaceFlinger כולל אלגוריתם מקומי למיפוי גוונים לצילומי מסך. התהליך הזה כולל:
- חלוקת תמונת הקלט לתמונות קטנות יותר.
- חישוב הבהירות המקסימלית בכל תמונה, והסרת ערכי בהירות נמוכים בכל חלק.
- אינטרפולציה של ערכי הבהירות המחושבים באמצעות טשטוש ודגימה מחדש.
- החלת מיפוי טונאלי של ריינהרד עם פרמטרים על תמונת הקלט, על סמך ערכי הבהירות שעברו אינטרפולציה.
האלגוריתם הזה משפר משמעותית את צילומי המסך בין Android 14 לבין Android 15-QPR1, כפי שאפשר לראות בדוגמאות הבאות:
דוגמה 1 היא צילום מסך של סרטון HDR שמוצג על גבי דף Chrome שמכיל Ultra HDR. הצבעים בממשק המשתמש נשמרים ברובם בהטמעה החדשה, והתמונה לא נחתכת יותר.
Android 14 Android 15-QPR1
איור 1. השוואה בין Android 14 לבין Android 15-QPR1 בדוגמה 1.
דוגמה 2 היא צילום מסך של סרטון HDR שמוצג מעל ההגדרות, עם צילומי מסך נוספים. ב-Android 14, הצבעים בצילום המסך הופכים כהים יותר בהדרגה. ב-Android 15-QPR1, מיפוי הטונים משכפל ושומר את צבעי ממשק המשתמש בצורה נכונה.
Android 14 Android 15-QPR1
איור 2. השוואה בין Android 14 לבין Android 15-QPR1 בדוגמה 2.
Android 16
בדומה ל-Ultra HDR, בצילומי מסך ב-HDR נשמרת מפת הגברה בקובץ צילום המסך כדי לשחזר את ייצוג ה-HDR במהלך העיבוד. עם זאת, בניגוד ל-Ultra HDR, צילום המסך נשאר בפורמט PNG לצורך תאימות לאחור עם מערכות שקולטות צילומי מסך בפורמט PNG.
יצירת צילומי מסך כוללת את הפעולות הבאות:
- כשתוכן HDR מוצג במכשיר, נוצר צילום מסך באמצעות פיקסלים של FP16.
- מיפוי הטונים המקומי שמתואר ב-Android 15-QPR1 יוצר עיבוד SDR בסיסי של 8 ביט.
- נוצרת מפת עוצמת הארה (gainmap) של 8 ביט על ידי שילוב של עיבוד בסיסי של SDR עם עיבוד של HDR.
- הרינדור הבסיסי של SDR ומפת הגוונים מקודדים לקובץ PNG יחיד.
קידוד PNG כולל את הפעולות הבאות:
- מפת ההגברה מקודדת כתמונת PNG, שכוללת נתח
gmAPשמכיל את המטא-נתונים של מפת ההגברה לפי ISO 21496-1. - העיבוד הבסיסי של SDR מקודד כתמונת PNG, שכוללת נתח (chunk) שמכיל את הגרסה של המטא-נתונים ISO 21496-1.
gmAPתמונת ה-PNG הזו כוללת גם נתחgdAT, שמכיל את כל תמונת ה-PNG של מפת הגוונים המקודדת.
באיור הבא מוצג הפריסה של נתחי ה-PNG:
איור 3. הפריסה של חלקי ה-PNG.
ב-Android 16, קודק ה-PNG תומך גם בקידוד וגם בפענוח של קובצי ה-PNG האלה. אפליקציות יכולות להציג PNG עם מפת עוצמה באותו אופן כמו Ultra HDR.