סרטונים בטווח דינמי גבוה (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, ולעזור ליצרני ציוד מקורי (OEM) וליצרני ציוד מקורי (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 באמצעות מאגרי וידאו אטומים. במילים אחרות:
- אין ממשק API סטנדרטי ל-Android שאפשר להשתמש בו כדי לבדוק אם יש תמיכה בהפעלת HDR באמצעות מקודדים ללא מנהרה.
- מקודדי וידאו במנהרה שמפרסמים יכולת הפעלה של HDR חייבים לתמוך בהפעלת HDR כשהם מחוברים למסכים שתומכים ב-HDR.
- הרכב GL של תוכן HDR לא נתמך בגרסת AOSP Android 7.0.
Discovery
כדי להפעיל את HDR, נדרש מפענח עם תמיכה ב-HDR וחיבור למסך שתומך ב-HDR. לחלופין, בטכנולוגיות מסוימות נדרש מחלץ ספציפי.
מסך
אפליקציות צריכות להשתמש ב-API החדש Display.getHdrCapabilities
כדי לשלוח שאילתה לגבי טכנולוגיות ה-HDR שנתמכות במסך שצוין. זהו בעצם המידע ב-EDID Static Metadata Data Block כפי שמוגדר ב-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
קבוע mime MediaFormat
:
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 למאגר יחיד לכל פריים. הפעולה הזו מתבצעת באופן אוטומטי על ידי MediaExtractor עם תמיכה ב-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.
חולץ
הקונטיינרים הבאים נתמכים בטכנולוגיות 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) ו-SOCs צריכים להיות מודעים להם.
מסך
הרכב החומרה
פלטפורמות שתומכות ב-HDR חייבות לתמוך בשילוב של תוכן HDR עם תוכן שאינו HDR. מאפייני המיזוג והפעולות המדויקות לא מוגדרים על ידי Android בגרסה 7.0, אבל התהליך מתבצע בדרך כלל לפי השלבים הבאים:
- מגדירים נפח/מרחב צבע לינארי שמכיל את כל השכבות שרוצים לשלב, על סמך הצבע, העיבוד והמטא-נתונים הדינמיים הפוטנציאליים של השכבות.
אם ה-Compositing מתבצע ישירות לתצוגה, זה יכול להיות המרחב הליניארי שמתאים לנפח הצבע של התצוגה. - ממירים את כל השכבות למרחב הצבעים המשותף.
- מבצעים את המיזוג.
- אם המסך מוצג דרך HDMI:
- קובעים את הצבע, העיבוד והמטא-נתונים הדינמיים הפוטנציאליים של הסצנה המשולבת.
- ממירים את הסצנה המשולבת שנוצרה למרחב/נפח הצבע המשויך.
- אם התצוגה מתבצעת ישירות במסך, צריך להמיר את התמונה המשולבת שנוצרה לאותות התצוגה הנדרשים כדי ליצור את התמונה הזו.
גילוי תצוגה
גילוי מסך HDR נתמך רק באמצעות HWC2. כדי שהתכונה הזו תפעל, מי שמטמיע את המכשיר צריך להפעיל באופן סלקטיבי את המתאם HWC2 ששוחרר עם Android 7.0. לכן, הפלטפורמות צריכות להוסיף תמיכה ב-HWC2 או להרחיב את מסגרת AOSP כדי לאפשר לספק את המידע הזה. ב-HWC2 מוצג API חדש להעברת נתונים סטטיים של HDR למסגרת ולאפליקציה.
HDMI
- מסך HDMI מחובר מכריז על יכולת ה-HDR שלו באמצעות HDMI EDID כפי שמוגדר בקטע 4.2 ב- CTA-861.3.
- יש להשתמש במיפוי EOTF הבא:
- ET_0 Traditional gamma – SDR Luminance Range: לא ממופה לאף סוג 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 נעשה שימוש בערכי צפיפות אור רצויים מסוג float, לכן צריך לתרגם את ערכי EDID של 8 ביט באופן מתאים.
מפענחים
הפלטפורמות חייבות להוסיף מפענחי מנהרות שתומכות ב-HDR ולפרסם את התמיכה ב-HDR. באופן כללי, מפענחים שתומכים ב-HDR חייבים:
- תמיכה בפענוח במנהרה (
FEATURE_TunneledPlayback
). - תמיכה במטא-נתונים סטטיים של HDR (
OMX.google.android.index.describeHDRColorInfo
) ובהפצה שלהם להרכבת המסך/החומרה. כדי להשתמש ב-HLG, צריך לשלוח למסך את המטא-נתונים המתאימים. - תמיכה בתיאור הצבע (
OMX.google.android.index.describeColorAspects
) והעברתו לרכיבי התצוגה או החומרה. - תמיכה במטא-נתונים מוטמעים של HDR כפי שהם מוגדרים בתקן הרלוונטי.
תמיכה במקודד Dolby Vision
כדי לתמוך ב-Dolby Vision, הפלטפורמות צריכות להוסיף ממיר OMX של HDR עם תמיכה ב-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 צריך להיות אותו מזהה ייחודי של טראק ('track-ID') כמו לטראק HDR, כדי שהאפליקציה תבין שמדובר בשני קידודים של אותו סרטון.
- האפליקציה יכולה להחליט באיזה מסלול לבחור על סמך היכולת של הפלטפורמה.
- צריך לחשוף את הפרופיל/הרמה של Dolby Vision בפורמט הטראק של ה-HDR.
- אם פלטפורמה מספקת מקודד שתומך ב-Dolby Vision, היא חייבת לספק גם חילוץ שמתאים ל-Dolby Vision, גם אם היא לא תומכת בהפעלת HDR.
תמיכה ב-HDR10 ובחילוץ HDR של VP9
אין דרישות נוספות למחולל כדי לתמוך ב-HDR10 או ב-VP9 HLG. הפלטפורמה צריכה להרחיב את מחלץ MP4 כדי לתמוך ב-VP9 PQ ב-MP4. המטא-נתונים הסטטיים של HDR צריכים להיות מופצים ב-bitstream של VP9 PQ, כך שהמטא-נתונים מועברים למפענח VP9 PQ ולהצגה דרך צינור עיבוד הנתונים הרגיל של Mediaחלץ => MediaCodec.
תוספים של Stagefright לתמיכה ב-Dolby Vision
הפלטפורמות צריכות להוסיף תמיכה בפורמט Dolby Vision ל-Stagefright:
- תמיכה בשאילתה של הגדרת יציאה לשקע דחוס.
- תמיכה בספירה של רמות/פרופילים למפענח DV.
- תמיכה בחשיפת פרופיל/רמה של DV לטראקים של DV HDR.
פרטי הטמעה ספציפיים לטכנולוגיה
צינור עיבוד נתונים של ממיר HDR10
סטרימרים של HDR10 ארוזים במאגרים של MP4. האפליקציות משתמשות במחולל רגיל של קובצי MP4 כדי לחלץ את נתוני המסגרות ולשלוח אותם למפענח.
- חלץ MPEG4
סטרימרים מסוג HDR10 מזוהים כסטרימרים רגילים מסוג HEVC על ידי MPEG4חלץ וטראק HDR מסוג 'video/HEVC' יחולץ. המסגרת בוחרת ממקודק הווידאו 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 תואם לאחור) טראק BL מכיל רק את שכבת הבסיס, שצריכה להיות ניתנת לפענוח על ידי מפענח MediaCodec רגיל, למשל מפענח AVC/HEVC. הכלי לחילוץ צריך לספק יחידות גישה רגילות של AVC/HEVC לטראק הזה. לרצועת ה-BL הזו צריך להיות אותו מזהה ייחודי של רצועה (track-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 אחת שיוגדר על ידי Doolby. חובה לכלול מסגרת 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 מזרם הביט לפני שליחת הפריימים למפענח.
- WebM Extractor:
- הכלי WebM Extractor מחלץ את המטא-נתונים והפריימים של HDR מ הקונטיינר.
- מפענח VP9:
- המקודד מקבל זרמי ביט של Profile2 ומפענח אותם כזרמים רגילים של VP9.
- המקודד מקבל מטא-נתונים סטטיים של HDR מהמסגרת.
- המקודד מקבל מטא-נתונים סטטיים דרך יחידות הגישה של מקור הנתונים (bitstream) עבור מקורות נתונים של VP9 PQ.
- למפענח VP9 צריכה להיות אפשרות להעביר את המטא-נתונים הסטטיים או הדינמיים של HDR למסך.
פעולות של ספקים
- הטמעת תמיכה במדד:
OMX.google.android.index.describeHDRColorInfo
- הטמעת תמיכה במדד:
OMX.google.android.index.describeColorAspects
- העברה של מטא-נתונים סטטיים של HDR