וידאו בטווח דינמי גבוה (HDR) הוא הקצה הבא בפענוח וידאו באיכות גבוהה, המשלב איכויות שחזור סצנות באיכות גבוהה. כדי לעשות זאת, הטווח הדינמי של רכיב הלחות הזו מוגדל באופן משמעותי (מ-100 cd/m2 הנוכחיים ל-1,000 cd/m2) ומשתמשים במרחב צבעים רחב הרבה יותר (BT 2020). זהו עכשיו רכיב מרכזי בהתפתחות של 4K UHD בתחום הטלוויזיה.
ב-Android 10 יש תמיכה בסרטוני HDR הבאים.
- HDR10
- VP9
- HDR10+
החל מ-Android 9 ואילך, MediaCodec מדווחת על מטא-נתונים של HDR ללא קשר למצב המנהרה.
אפשר לקבל נתונים מפוענחים יחד עם מטא-נתונים סטטיים ודינמיים במצב ללא מנהור. ל-HDR10 ול-VP9Profile2 עם מטא-נתונים סטטיים, הדיווחים מופיעים בפורמט הפלט עם המפתח KEY_HDR_STATIC_INFO
. ב-HDR10+ שמשתמש במטא-נתונים דינמיים, הדיווח מתבצע באמצעות המפתח KEY_HDR10_PLUS_INFO
בפורמט הפלט, והוא עשוי להשתנות בכל פריים פלט.
מידע נוסף זמין במאמר מנהור מולטימדיה.
החל מגרסה 7.0 של Android, התמיכה הראשונית ב-HDR כוללת יצירה של קבועים מתאימים לזיהוי ולהגדרה של צינורות עיבוד נתונים של וידאו ב-HDR. המשמעות היא הגדרה של סוגי קודק ומצבי תצוגה וציון הדרך שבה נתוני HDR צריכים לעבור ל-MediaCodec ולסופקים למפענחי HDR.
מטרת המסמך הזה היא לעזור למפתחי אפליקציות לתמוך בהפעלת סטרימינג של HDR, ולעזור ליצרני ציוד מקורי ול-SOC להפעיל את תכונות ה-HDR.
טכנולוגיות HDR נתמכות
החל מ-Android 7.0 ואילך, יש תמיכה בטכנולוגיות ה-HDR הבאות.
טכנולוגיה | Dolby-Vision | HDR10 | VP9-HLG | VP9-PQ |
---|---|---|---|---|
קודק | AVC/HEVC | מק"ט HEVC | VP9 | VP9 |
פונקציית העברה | ST-2084 | ST-2084 | איכות חיים (HLG) | ST-2084 |
סוג מטא-נתונים של HDR | דינמי | סטטי | ללא | סטטי |
ב-Android 7.0, מוגדרת רק הפעלה של HDR באמצעות מצב מנהרה, אבל מכשירים יכולים להוסיף תמיכה בהפעלת HDR ב-SurfaceViews באמצעות מאגרי וידאו אטומים. במילים אחרות:
- אין Android API סטנדרטי כדי לבדוק אם הפעלה באיכות HDR נתמכת באמצעות מפענחים ללא מנהור.
- מקודדי וידאו במנהרה שמפרסמים יכולת הפעלה של HDR חייבים לתמוך בהפעלת HDR כשהם מחוברים למסכים שתומכים ב-HDR.
- הרכב GL של תוכן HDR לא נתמך בגרסת AOSP Android 7.0.
Discovery
כדי להפעיל את HDR, נדרש מפענח עם תמיכה ב-HDR וחיבור למסך שתומך ב-HDR. לחלופין, בטכנולוגיות מסוימות נדרש מחלץ ספציפי.
מסך
אפליקציות צריכות להשתמש ב-API החדש Display.getHdrCapabilities
כדי לשלוח שאילתה לגבי טכנולוגיות ה-HDR שנתמכות במסך שצוין. זהו בעיקר המידע בבלוק הנתונים של המטא-נתונים הסטטיים של EDID כפי שמוגדר ב-CTA-861.3:
public Display.HdrCapabilities getHdrCapabilities()
הפונקציה מחזירה את יכולות ה-HDR של המסך.Display.HdrCapabilities
מפרט את יכולות ה-HDR של מסך מסוים. לדוגמה, סוגי ה-HDR שנתמכים בהתקן ופרטים על נתוני הלומינסנציה הרצויים.
קבועים:
int HDR_TYPE_DOLBY_VISION
תמיכה ב-Dolby Vision.int HDR_TYPE_HDR10
תמיכה ב-HDR10 או ב-PQ.int HDR_TYPE_HDR10_PLUS
תמיכה ב-HDR10+.int HDR_TYPE_HLG
תמיכה ב-Hybrid Log-Gamma.float INVALID_LUMINANCE
ערך בהירות לא חוקי.
שיטות ציבוריות:
float getDesiredMaxAverageLuminance()
מחזירה את נתוני רמת ההארה הממוצעת הרצויים של הפריימים בתוכן ב-cd/cd/m2 למסך הזה.float getDesiredMaxLuminance()
הפונקציה מחזירה את נתוני הלחות המקסימלית הרצויה של התוכן ב-cd/cd/m2 עבור המסך הזה.float getDesiredMinLuminance()
הפונקציה מחזירה את נתוני הלומינסנציה המינימליים הרצויים של התוכן ב-cd/cd/m2 עבור המסך הזה.int[] getSupportedHdrTypes()
מקבלים את סוגי ה-HDR הנתמכים של המסך הזה (אפשר לראות קבועים). הפונקציה מחזירה מערך ריק אם המסך לא תומך ב-HDR.
מפענח
אפליקציות צריכות להשתמש ב-API הקיים CodecCapabilities.profileLevels
כדי לאמת תמיכה בפרופילים החדשים שתומכים ב-HDR:
Dolby Vision
MediaFormat
קבוע mime:
String MIMETYPE_VIDEO_DOLBY_VISION
MediaCodecInfo.CodecProfileLevel
קבועי פרופיל:
int DolbyVisionProfileDvavPen int DolbyVisionProfileDvavPer int DolbyVisionProfileDvheDen int DolbyVisionProfileDvheDer int DolbyVisionProfileDvheDtb int DolbyVisionProfileDvheDth int DolbyVisionProfileDvheDtr int DolbyVisionProfileDvheStn
את השכבות והמטא-נתונים של Dolby Vision צריך לחבר למאגר נתונים זמני אחד לכל פריימים באמצעות אפליקציות וידאו. הפעולה הזו מתבצעת אוטומטית על ידי Mediaחלץ/ת שתומך ב-Dolby-Vision.
HEVC HDR 10
MediaCodecInfo.CodecProfileLevel
קבועי פרופיל:
int HEVCProfileMain10HDR10 int HEVCProfileMain10HDR10Plus
VP9 HLG ו-PQ
MediaCodecInfo.CodecProfileLevel
משתני קבוע של פרופיל:
int VP9Profile2HDR int VP9Profile2HDR10Plus int VP9Profile3HDR int VP9Profile3HDR10Plus
אם פלטפורמה תומכת במפענח שתומך ב-HDR, היא תומכת גם במחולל שתומך ב-HDR.
רק מפענחי מנהור יכולים להפעיל תוכן HDR. הפעלה באמצעות מקודדים ללא מנהרה עלולה לגרום לאובדן המידע של HDR ולמישור התוכן לנפח צבע SDR.
Extractor
הקונטיינרים הבאים נתמכים בטכנולוגיות HDR השונות ב-Android 7.0:
טכנולוגיה | Dolby-Vision | HDR10 | VP9-HLG | VP9-PQ |
---|---|---|---|---|
מאגר | MP4 | MP4 | WebM | WebM |
הפלטפורמה לא תומכת בזיהוי אם לטראק (של קובץ) נדרשת תמיכה ב-HDR. האפליקציות יכולות לנתח את הנתונים הספציפיים לקודק כדי לקבוע אם לטראק נדרש פרופיל HDR ספציפי.
סיכום
דרישות הרכיבים לכל טכנולוגיית HDR מפורטות בטבלה הבאה:
טכנולוגיה | Dolby-Vision | HDR10 | VP9-HLG | VP9-PQ |
---|---|---|---|---|
סוג HDR נתמך (מסך) | HDR_TYPE_DOLBY_VISION | HDR_TYPE_HDR10 | HDR_TYPE_HLG | HDR_TYPE_HDR10 |
קונטיינר (חלץ) | MP4 | MP4 | WebM | WebM |
מפענח | MIMETYPE_VIDEO_DOLBY_VISION | MIMETYPE_VIDEO_HEVC | MIMETYPE_VIDEO_VP9 | MIMETYPE_VIDEO_VP9 |
פרופיל (מפענח) | אחד מהפרופילים של Dolby | HEVCProfileMain10HDR10 | VP9Profile2HDR או VP9Profile3HDR | VP9Profile2HDR או VP9Profile3HDR |
הערות:
- סטרימרים של Dolby-Vision נארזים בקונטיינר MP4 באופן שמוגדר על ידי Dolby. האפליקציות יכולות להטמיע כלי חילוץ משלהם עם יכולות Dolby, כל עוד הם אורזים את יחידות הגישה מהשכבות המתאימות ביחידת גישה אחת למפענח, כפי שהוגדר על ידי Dolby.
- יכול להיות שפלטפורמה תתמוך במחולל שמסוגל ל-HDR, אבל לא במפענח תואם שמסוגל ל-HDR.
הפעלה
אחרי שתאומת התמיכה של האפליקציה בהפעלת HDR, היא יכולה להפעיל תוכן HDR כמעט באותו אופן שבו היא מפעילה תוכן שאינו HDR, עם ההגבלות הבאות:
- ב-Dolby-Vision, גם אם קובץ או טראק מסוימים של מדיה דורשים מפענח עם יכולות HDR לא זמין באופן מיידי. האפליקציה צריכה לקבל את המידע הזה מראש, או להיות מסוגלת לקבל את המידע הזה על ידי ניתוח הקטע של הנתונים הספציפיים לקודק ב-MediaFormat.
- הפונקציה
CodecCapabilities.isFormatSupported
לא בודקת אם תכונת המפענח במנהרה נדרשת כדי לתמוך בפרופיל כזה.
הפעלת התמיכה בפלטפורמת HDR
ספקי SoC ו-OEM צריכים לבצע עבודה נוספת כדי לאפשר תמיכה בפלטפורמת HDR במכשיר.
שינויים בפלטפורמות ב-Android 7.0 לביצוע HDR
ריכזנו כאן כמה שינויים עיקריים בפלטפורמה (שכבת האפליקציה/השכבה המקורית) ש-OEM ו-SOC צריכים להיות מודעים אליהם.
מסך
הרכב החומרה
פלטפורמות שתומכות ב-HDR חייבות לתמוך בשילוב של תוכן HDR עם תוכן שאינו HDR. מאפייני המיזוג והפעולות המדויקות לא מוגדרים על ידי Android בגרסה 7.0, אבל התהליך מתבצע בדרך כלל לפי השלבים הבאים:
- מצאו מרחב/נפח צבעים לינארי שמכיל את כל השכבות להרכבת, על סמך הצבע, המאסטרינג והמטא-נתונים הדינמיים הפוטנציאליים של השכבות.
אם ה-Compositing מתבצע ישירות לתצוגה, זה יכול להיות המרחב הליניארי שמתאים לנפח הצבע של התצוגה. - ממירים את כל השכבות למרחב הצבעים המשותף.
- מבצעים את המיזוג.
- אם הפריט מוצג באמצעות HDMI:
- תוכלו לקבוע את הצבע, המאסטרינג והמטא-נתונים הדינמיים הפוטנציאליים של הסצנה המעורבת.
- ממירים את הסצנה המשולבת שנוצרה למרחב/נפח הצבעים הנגזר.
- אם התצוגה מוצגת ישירות למסך, ממירים את הסצנה המעורבת שמתקבלת לאותת התצוגה הנדרשים כדי ליצור את הסצנה הזו.
גילוי מודעות לרשת המדיה
זיהוי של מסכים באיכות HDR נתמך רק דרך HWC2. כדי שהתכונה תעבוד, המשתמשים צריכים להפעיל באופן סלקטיבי את מתאם HWC2 שמגיע עם Android 7.0. לכן, הפלטפורמות צריכות להוסיף תמיכה ב-HWC2 או להרחיב את מסגרת AOSP כדי לאפשר לספק את המידע הזה. HWC2 חושף ממשק API חדש להפצת נתונים סטטיים של HDR ב-framework ובאפליקציה.
HDMI
- צג HDMI מחובר מפרסם את יכולת ה-HDR שלו באמצעות HDMI EDID, כפי שמוגדר בסעיף 4.2 CTA-861.3.
- יש להשתמש במיפוי EOTF הבא:
- ET_0 מסורתית של gamma – טווח ההארה של SDR: לא ממופה לאף סוג HDR
- ET_1 Traditional gamma - HDR Luminance Range: not mapped to any HDR type
- ET_2 SMPTE ST 2084 – ממופה לסוג HDR HDR10
- האותות של התמיכה ב-Dolby Vision או ב-HLG ב-HDMI מבוצע בהתאם להגדרה של הגוף הרלוונטי.
- שימו לב ש-HWC2 API משתמש בערכי רמת הארה משתנה מסוג צף, כך שערכי EDID של 8 ביט צריכים להיות מתורגמים בדרך מתאימה.
מפענחים
הפלטפורמות צריכות להוסיף מקודדים ב-tunnel עם תמיכה ב-HDR ולפרסם את התמיכה שלהן ב-HDR. באופן כללי, מפענחים שתומכים ב-HDR חייבים:
- תמיכה בפענוח במנהרה (
FEATURE_TunneledPlayback
). - תמיכה במטא-נתונים סטטיים של HDR (
OMX.google.android.index.describeHDRColorInfo
) ובהפצה שלהם להרכבת המסך/החומרה. ל-HLG, יש לשלוח לתצוגה את המטא-נתונים המתאימים. - תמיכה בתיאור הצבע (
OMX.google.android.index.describeColorAspects
) והעברתו לרכיבי התצוגה או החומרה. - תמיכה במטא-נתונים מוטמעים של HDR כפי שהם מוגדרים בתקן הרלוונטי.
תמיכה במקודד Dolby Vision
כדי לתמוך ב-Dolby Vision, פלטפורמות חייבות להוסיף מפענח HDR OMX עם יכולות Dolby-Vision. בהתאם לפרטים הספציפיים של Dolby Vision, בדרך כלל מדובר במפענח מעטפת שמקיף מפענח אחד או יותר של AVC ו/או HEVC, וגם רכיב עיבוד תמונה. מפענחים כאלה חייבים:
- תמיכה בסוג ה-MIME 'video/dolby-vision'.
- פרסום פרופילים או רמות נתמכים של Dolby Vision.
- קבלת יחידות גישה שמכילות את יחידות הגישה המשניות של כל השכבות, כפי שהוגדר על ידי Dolby.
- קבלת נתונים ספציפיים לקודק שהוגדרו על ידי Dolby. לדוגמה, נתונים שמכילים את הפרופיל או הרמה של Dolby Vision, ואולי גם את הנתונים הספציפיים לקודק למפענחים הפנימיים.
- תמיכה במעבר אדפטיבי בין רמות או פרופילים של Dolby Vision, כנדרש על ידי Dolby.
כשמגדירים את המפענח, פרופיל Dolby בפועל לא מועבר לקודק, אלא רק באמצעות נתונים ספציפיים לקודק אחרי שהמפענח התחיל. פלטפורמה יכולה לבחור לתמוך במספר מקודדים של Dolby Vision: אחד לפרופילים של AVC, ואחד לפרופילים של HEVC, כדי שאפשר יהיה לאתחל את הקודקים הבסיסיים במהלך הגדרת הזמן. אם מפענח יחיד של Dolby Vision תומך בשני סוגי הפרופילים, הוא צריך גם לתמוך במעבר בין הפרופילים באופן דינמי באופן דינמי.
אם הפלטפורמה מספקת מפענח עם תמיכה ב-Dolby-Vision בנוסף לתמיכה הכללית במפענח HDR, היא צריכה:
- לספק חילוץ עם תמיכה ב-Dolby Vision, גם אם הוא לא תומך בהפעלת HDR.
- לספק מקודד שתומך בפרופיל הווידאו כפי שהוגדר על ידי Dolby.
תמיכה במפענח HDR10
כדי לתמוך ב-HDR10, פלטפורמות חייבות להוסיף מפענח OMX עם תמיכה ב-HDR10. בדרך כלל זהו מפענח HEVC עם מנהרה שתומך גם בניתוח מטא-נתונים שקשורים ל-HDMI ובטיפול בהם. מפענח כזה (בנוסף לתמיכה הכללית במפענח HDR) חייב:
- תמיכה בסוג mime 'video/hevc'.
- פרסום של HEVCMain10HDR10. תמיכה בפרופיל HEVCMain10HRD10 דורשת גם תמיכה בפרופיל HEVCMain10, מה שמחייב תמיכה בפרופיל HEVCMain באותן רמות.
- תמיכה בניתוח של בלוקים של SEI של מטא-נתונים של מאסטרינג, וכן מידע נוסף שקשור ל-HDR שמופיע ב-SPS.
תמיכה במפענח VP9
כדי לתמוך ב-VP9 HDR, הפלטפורמה צריכה להוסיף מפענח HDR OMX עם תמיכה ב-VP9 Profile2. בדרך כלל מדובר במפענח VP9 עם מנהרה שתומך גם בטיפול במטא-נתונים שקשורים ל-HDMI. מפענחים כאלה (בנוסף לתמיכה הכללית במפענח HDR) חייבים:
- תמיכה ב-mime מסוג 'video/x-vnd.on2.vp9'.
- פרסום של VP9Profile2HDR נתמך. כדי לתמוך בפרופיל VP9Profile2HDR, צריך גם לתמוך בפרופיל VP9Profile2 באותה רמה.
חולצים
תמיכה ב-Dolby Vision extractor
בפלטפורמות שתומכות במפענחים של Dolby Vision, צריך להוסיף תמיכה בתוכן של Dolby Video, (שמכונה Dolby חילוץ) של Dolby.
- בכלי חילוץ רגיל של MP4 אפשר לחלץ רק את שכבת הבסיס מקובץ, אבל לא את שכבות השיפור או המטא-נתונים. לכן יש צורך במחלץ Dolby מיוחד כדי לחלץ את הנתונים מהקובץ.
- כלי החילוץ של Dolby חייב לחשוף טראק אחד או שניים לכל טראק וידאו של Dolby (קבוצה):
- טראק Dolby Vision HDR עם הסוג 'video/dolby-vision' לשידור Dolby משולב של 2/3 שכבות. פורמט יחידת הגישה של הטראק ב-HDR, שמגדיר איך לארוז את יחידות הגישה משכבות הבסיס/שיפור/המטא-נתונים למאגר יחיד לצורך פענוח לפריים HDR יחיד, מוגדר על ידי Dolby.
- אם רצועת וידאו של Dolby Vision מכילה שכבת בסיס (BL) נפרדת (תואמת לאחור), הכלי לחילוץ חייב גם לחשוף אותה כרצועה נפרדת מסוג 'video/avc' או 'video/hevc'. הכלי לחילוץ צריך לספק יחידות גישה רגילות של AVC/HEVC לטראק הזה.
- טראק BL חייב להיות זהה לטראק-Unique-ID ("track-ID") כמו טראק HDR, כדי שהאפליקציה תבין שמדובר בשני קידודים של אותו סרטון.
- האפליקציה יכולה להחליט איזה טראק לבחור על סמך יכולות הפלטפורמה.
- צריך לחשוף את הפרופיל/הרמה של Dolby Vision בפורמט הטראק של ה-HDR.
- אם פלטפורמה מסוימת מספקת מפענח עם תמיכה ב-Dolby-Vision, היא חייבת לספק גם מחלץ מסוג Dolby-Vision, גם אם הוא לא תומך בהפעלת HDR.
תמיכה ב-HDR10 ובחילוץ HDR של VP9
אין דרישות נוספות לכלי החילוץ כדי לתמוך ב-HDR10 או ב-VP9 HLG. הפלטפורמה צריכה להרחיב את מחלץ MP4 כדי לתמוך ב-VP9 PQ ב-MP4. צריך להעביר את המטא-נתונים הסטטיים של HDR בזרם הביט של VP9 PQ, כך שהמטא-נתונים האלה יועברו למפענח VP9 PQ ולצג דרך צינור עיבוד הנתונים הרגיל MediaExtractor => MediaCodec.
תוספים של Stagefright לתמיכה ב-Dolby Vision
הפלטפורמות צריכות להוסיף תמיכה בפורמט Dolby Vision ל-Stagefright:
- תמיכה בשאילתה של הגדרת יציאה לשקע דחוס.
- ספירת פרופיל או רמה של תמיכה למפענח DV.
- תמיכה בחשיפת פרופיל/רמה של DV לטראקים של DV HDR.
פרטי הטמעה ספציפיים לטכנולוגיה
צינור עיבוד נתונים של ממיר HDR10
סטרימרים של HDR10 ארוזים במאגרים של MP4. האפליקציות משתמשות במחולל רגיל של קובצי MP4 כדי לחלץ את נתוני המסגרות ולשלוח אותם למפענח.
- חלץ MPEG4
סטרימרים מסוג HDR10 מזוהים כסטרימרים רגילים מסוג HEVC על ידי MPEG4חלץ וטראק HDR מסוג 'video/HEVC' יחולץ. ה-framework בוחר מפענח וידאו HEVC שתומך בפרופיל Main10HDR10 כדי לפענח את הטראק הזה. - HEVC Decoder
מידע על HDR מוצג ב-SEI או ב-SPS. מקודד ה-HEVC מקבל קודם את התמונות שמכילות את נתוני ה-HDR. לאחר מכן המפענח מחלץ את פרטי ה-HDR ומודיע לאפליקציה שהוא מפענח סרטון HDR. המידע על HDR מגיע לפורמט הפלט של המפענח, שמופץ לפלטפורמה מאוחר יותר.
פעולות של ספקים
- פרסום פרופיל המפענח הנתמך של HDR וסוג OMX ברמה. דוגמה:
OMX_VIDEO_HEVCProfileMain10HDR10
(וגםMain10
) - הטמעת תמיכה באינדקס:
'
OMX.google.android.index.describeHDRColorInfo
' - הטמעת תמיכה באינדקס:
'
OMX.google.android.index.describeColorAspects
' - הטמעת תמיכה בניתוח SEI של מאסטרינג של מטא-נתונים.
צינור עיבוד נתונים של מקודד Dolby Vision
זרמי הביט של Dolby ארוזים בקונטיינרים של MP4 כפי שהוגדר על ידי Dolby. באופן תיאורטי, אפליקציות יכולות להשתמש בתוכנה רגילה לחילוץ קובצי MP4 כדי לחלץ את שכבת הבסיס, שכבת השיפור ושכבת המטא-נתונים בנפרד. עם זאת, הפתרון הזה לא מתאים למודל הנוכחי של Android MediaExtractor/MediaCodec.
- DolbyExtractor:
- זרמי ביט של Dolby מזוהים על ידי DolbyExtractor, שמציג את השכבות השונות כטראק אחד עד שניים לכל טראק וידאו של Dolby (קבוצה):
- טראק HDR עם הסוג 'video/dolby-vision' לשידור ה-Dolby המורכב משכבות 2/3. פורמט יחידת הגישה של טראק HDR, שמגדיר איך לארוז את יחידות הגישה משכבות הבסיס/שיפור/מטא-נתונים למאגר נתונים זמני אחד לפענוח למסגרת HDR אחת, יוגדר על ידי Dolby.
- (אופציונלי, רק אם ה-BL תואם לאחור) טראק ABL מכיל רק את שכבת הבסיס, שחייבת להיות ניתנת לפענוח על ידי מפענח MediaCodec רגיל, למשל מפענח AVC/HEVC. המחלץ צריך לספק יחידות גישה רגילות ל-AVC/HEVC למסלול הזה. טראק ה-BL הזה חייב להיות זהה לטראק-Unique-ID ("track-ID") כמו של הטראק של Dolby, כדי שהאפליקציה תבין שמדובר בשני קידודים של אותו סרטון.
- האפליקציה יכולה להחליט איזה טראק לבחור על סמך היכולות של הפלטפורמה.
- מכיוון שלטראק HDR יש סוג HDR ספציפי, המסגרת תבחר ממקודק וידאו של Dolby כדי לפענח את הטראק הזה. טראק ה-BL מפוענח על ידי מפענח וידאו רגיל מסוג AVC/HEVC.
- זרמי ביט של Dolby מזוהים על ידי DolbyExtractor, שמציג את השכבות השונות כטראק אחד עד שניים לכל טראק וידאו של Dolby (קבוצה):
- DolbyDecoder:
- DolbyDecoder מקבל יחידות גישה שמכילות את יחידות הגישה הנדרשות לכל השכבות (EL+BL+MD או BL+MD)
- אפשר לארוז את המידע של CSD (נתונים ספציפיים לקודק, כמו SPS+PPS+VPS) של השכבות הנפרדות בתוך מסגרת CSD אחת שתוגדר על ידי Dolby. נדרשת מסגרת CSD אחת.
פעולות Dolby
- הגדרת האריזה של יחידות הגישה לסכמות הקונטיינר השונות של Dolby (למשל BL+EL+MD) למפענח Dolby המופשט (כלומר פורמט המאגר שציפית למפענח HDR).
- הגדרת האריזה של CSD למפענח Dolby המופשט.
פעולות של ספקים
- יישום מחלץ Dolby. גם Dolby יכולה לעשות זאת.
- משלבים את DolbyExtractor במסגרת. נקודת הכניסה היא
frameworks/av/media/libstagefright/MediaExtractor.cpp
. - להצהיר על פרופיל מפענח HDR ועל סוג OMX של הרמה. לדוגמה:
OMX_VIDEO_DOLBYPROFILETYPE
ו-OMX_VIDEO_DOLBYLEVELTYP
. - הטמעת תמיכה ב-'index:
'OMX.google.android.index.describeColorAspects
' - הפצת המטא-נתונים הדינמיים של HDR באפליקציה והצגה בכל פריים. בדרך כלל צריך לאחסן את המידע הזה במסגרת המפוענחת כפי שמוגדר על ידי Dolby, כי תקן ה-HDMI לא מאפשר להעביר אותו למסך.
צינור עיבוד נתונים של ממפענח VP9
סטרימרים מסוג VP9 ארוזים בקונטיינרים של WebM לפי הגדרה של צוות WebM. אפליקציות צריכות להשתמש במחלץ WebM כדי לחלץ מטא-נתונים של HDR מה-bitstream לפני שליחת פריימים למפענח.
- מחלץ WebM:
- מחלץ WebM מחלץ את המטא-נתונים והפריימים של HDR מה קונטיינר.
- מפענח VP9:
- המפענח מקבל סטרימרים של Profile2 ומפענח אותם כסטרימרים רגילים של VP9.
- המקודד מקבל מטא-נתונים סטטיים של HDR מהמסגרת.
- המקודד מקבל מטא-נתונים סטטיים דרך יחידות הגישה של מקור הנתונים (bitstream) עבור מקורות נתונים של VP9 PQ.
- למפענח VP9 צריכה להיות אפשרות להפיץ את המטא-נתונים הסטטיים/דינמיים של HDR לתצוגה.
פעולות של ספק
- הטמעת תמיכה במדד:
OMX.google.android.index.describeHDRColorInfo
- הטמעת תמיכה באינדקס:
OMX.google.android.index.describeColorAspects
- העברה של מטא-נתונים סטטיים של HDR