בדף הזה מתוארים הדרישות, ההגדרות והאימות של תכונת עמעום תוכן ה-SDR ליצירה מעורבת של SDR ו-HDR.
ב-Android 13 יש שיפור בתמיכה בהצגה בו-זמנית של קומפוזיציה של SDR ו-HDR במסך, באמצעות התכונות הבאות:
מיפוי גוונים של רמת הבהירות ב-HDR לטווח תואם ל-SDR.
בעזרת
libtonemap
אפשר ליצור עקביות במיפוי הטונים בין Hardware Composer (HWC), SurfaceFlinger ואפליקציות. יצרני ציוד מקורי יכולים להשתמש בעקומות שלהם למיפוי טונים כדי לשתף אותן בין רכיבי הספק ו-framework.האפלה של תוכן SDR במסך כשמוצג בו בו-זמנית תוכן HDR.
כשתוכן HDR מוצג במסך, בהירות המסך מוגדלת כדי להתאים לטווח הבהירות המוגדל של תוכן ה-HDR. כל תוכן SDR שמוצג במסך יאטם בצורה חלקה ככל שהבהירות של המסך תגדל, כך שהבהירות החזותית של תוכן ה-SDR לא תשתנה. יצרני ציוד מקורי יכולים להגדיר את המסכים המובנים שלהם לעמעום תוכן SDR במסך כשהם מוצגים לצד תוכן HDR.
דרישות לגבי OEM (יצרן ציוד מקורי)
כדי להשתמש בקומפוזיציה המשופרת של תוכן HDR ו-SDR באמצעות עמעום תוכן SDR, צריך לפעול לפי הדרישות הבאות:
להטמיע את גרסת AIDL של HWC, שכוללת תמיכה בעמעום מהירות באמצעות חומרה בצינור הצבעים של המכשיר. כדי להטמיע את היכולות הנדרשות, עיינו במאמר AIDL ל-HWC.
כדי להכהות שכבות-על של חומרה ב-HWC באופן מדויק, נדרשת חומרה ספציפית כדי לשנות את עוצמת התאורה הליניארית של השכבות העליונות. בהטמעות ללא חומרה מספקת, יש צורך לדחות את ההרכבה ל-GPU על ידי SurfaceFlinger, וכך מתרוקנת הסוללה ויכול להיות עמעום באיכות נמוכה.
המכשיר צריך לתמוך בטכנולוגיית HDR אחת לפחות שדווחה על ידי
Display.getHdrCapabilities
.
הגדרות אישיות
אפשר להגדיר את תכונת הרכבת התוכן המעורבת של SDR ו-HDR בהתאם למאפיינים של מכשיר המסך המובנה, כך ששומר על איזון בין חיי הסוללה, שריפת פיקסלים ורמת דיוק התוכן.
ההפעלה והכוונון של הקומפוזיציה המשופרת מבוצעות באמצעות תצורת תצוגה שהסכימה שלה נמצאת ב-display-device-config.xsd
.
האלמנטים המרכזיים החדשים הבאים חשובים להגדרה של הגדרות התצוגה:
הרכיב
sdrHdrRatioMap
מאפשר עמעום של SDR ומגדיר טבלת חיפוש מידע (LUT) למיפוי בהירות המסך, כדי להציג את HDR לנקודה הלבנה של SDR כשיש תוכן HDR במסך.אם מגדירים את
sdrHdrRatioMap
, אז כחלק משליטה בבהירות המסך,DisplayManagerService
מעביר את הנקודה הלבנה של SDR ל-SurfaceFlinger, כדי ש-SurfaceFlinger יכול לשלוח את יחס העמעום המתאים בכל שכבה ל-HWC.אם הערך של
sdrHdrRatioMap
לא מוגדר, עמעום ה-SDR לא מופעל, גם אם ההטמעה של HWC תומכת בעמעום SDR.הרכיב
minimumHdrPercentOfScreen
, עם ערך בין 0 ל-100, קובע מתי אפשר להפעיל את מצב הבהירות הגבוהה של הלוח. ב-Android 13, אפשר לשנות את הסף הזה כדי להפעיל את מצב הבהירות הגבוהה במצבים נוספים, כמו תרחישים של 'תמונה בתוך תמונה'. בגרסאות הקודמות של AOSP תיקנו את הערך הזה ל-50%.
בקוד הבא מפורטים הרכיבים העיקריים של הגדרת התצוגה:
<displayConfiguration>
...
<highBrightnessMode>
...
<!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
<minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
<!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
<sdrHdrRatioMap>
<point>
<sdrNits>...</sdrNits>
<hdrRatio>...</hdrRatio>
</point>
<point>
<sdrNits>...</sdrNits>
<hdrRatio>...</hdrRatio>
</point>
<!--More interpolation points may be added –->
...
</sdrHdrRatioMap>
...
</highBrightnessMode>
...
</displayConfiguration>
נקודות שצריך לשים לב אליהן:
הפעלת התכונות 'מיפוי גוונים' ו'הכהיית תוכן SDR' עלולה להוביל למצבים הבאים:
איכות התוכן ב-HDR שמופעלת במכשיר עשויה להשתפר, כי רכיבי התוכן ב-SDR יהיו כהים יותר.
חיי הסוללה עשויים להתקצר בתרחישים הבאים:
הטמעות של HWC שדוחפות פעולות עמעום ל-GPU עלולות לגרום לשימוש מוגבר ב-GPU.
הגדרות תצוגה שמאפשרות סף נמוך יותר להפעלת מצב בהירות גבוהה יכולות להגביר את ההספק החשמלי להפעלת המסך בבהירות גבוהה יותר.
מצב בהירות גבוה עלול להיפגע כתוצאה מצפייה במשך זמן רב יותר במצב בהירות גבוהה. מצב כזה עלול לגרום לבעיות לטווח הארוך, כמו שריפת פיקסלים בגלל מצב בהירות המסך.
אימות
יצרני ציוד מקורי יכולים להשתמש בבדיקות VTS, שנכללות בחבילת הבדיקות של HWC, כדי לבדוק את הנכונות של האפלה ולאמת את יחס האפלה של הקלט.
האימות של התכונה הזו תלוי במכשיר, ולכן אין בדיקות CTS או GTS שתומכות בה.
יצרני ציוד מקורי צריכים לבצע בדיקות ידניות כדי לוודא שאיכות התמונה של רכיבי SDR מעומעמים היא סבירה. יצרני ציוד מקורי יכולים להפעיל תוכן בתקני HDR שהמכשיר תומך בהם מעל SurfaceView
כדי לוודא שאלמנטים של SDR שמופעלים לצד תוכן HDR לא יהיו בהירים מדי.
בעיות
האפלה של תמונות SDR עלולה לגרום לדחיסה של שחור או לאובדן מידע באזורים כהים יותר בתמונה המקורית. הסיבה לכך היא שערכים של צבעים כהים יותר מתכווצים לקבוצה קטנה יותר של קודים כהים.
הטמעה של עמעום שגורמת ל-black crush בלתי קביל חייבת לכלול הטמעה של אלגוריתמים של דיטירציה, שמחדירים רעש לתמונה הסופית כדי לצמצם את ההשפעות של פסים.
הטמעות של HWC שלא יכולות לבצע דיטיר (dither) של התמונה במיקום המתאים בצינור עיבוד הנתונים של הצבעים צריכות לבקש מ-SurfaceFlinger להחיל עמעום ודיטיר ב-GPU.
בהטמעות אפשר גם לשנות את הערך של sdrHdrRatioMap
כדי להגביל את משך העמעום של רכיבי SDR. כדי להפחית את הבהירות לרמות נמוכות מאוד, צריך להשתמש ב-GPU. הפעולה הזו משפרת את איכות התמונה, אבל יכולה לקצר את חיי הסוללה.