קומפוזיציה משולבת של SDR ו-HDR

בדף הזה מוסבר על הדרישות, ההגדרה והאימות של התכונה 'הנמכת תוכן SDR' להרכבה של תוכן SDR ו-HDR.

‫Android 13 משפר את התמיכה בהצגה בו-זמנית של קומפוזיציית SDR ו-HDR על המסך באמצעות הפיצ'רים הבאים:

  • מיפוי טונים של בהירות HDR לטווח שמתאים ל-SDR.

    באמצעות libtonemap, אפשר ליצור מיפוי עקבי של גוונים בין Hardware Composer‏ (HWC),‏ SurfaceFlinger ואפליקציות. יצרני ציוד מקורי יכולים להטמיע עקומות מיפוי טונים משלהם, שישותפו בין ספק לרכיבי מסגרת.

  • העמעום של תוכן SDR שמוצג על המסך כשמציגים אותו בו-זמנית עם תוכן HDR.

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

דרישות OEM

כדי להשתמש בשיפור ההרכבה של תוכן HDR ו-SDR באמצעות עמעום תוכן SDR, צריך לעמוד בדרישות הבאות:

  • מטמיעים את גרסת ה-AIDL של HWC, שכוללת תמיכה בהנמכה מואצת בחומרה בצינור הצבעים של המכשיר. כדי להטמיע את היכולות הנדרשות, אפשר לעיין במאמר בנושא AIDL for 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 לתמיכה בה.

יצרני ציוד מקורי (OEM) צריכים להריץ בדיקות ידניות כדי לוודא שאיכות התמונה של רכיבי SDR מוצללים מקובלת. יצרני ציוד מקורי יכולים להפעיל תוכן לפי תקני HDR שהמכשיר תומך בהם דרך SurfaceView כדי לוודא שרכיבי SDR שמופעלים לצד תוכן ה-HDR לא יהפכו לבהירים מדי.

בעיות

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

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

הטמעות של HWC שלא יכולות לבצע דית'רינג של התמונה במיקום המתאים בצינור הצבעים צריכות לבקש מ-SurfaceFlinger להחיל דית'רינג והנמכה ב-GPU.

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