השמעת וידאו HDR

וידאו בטווח דינמי גבוה (HDR) הוא הגבול הבא בפענוח וידאו באיכות גבוהה, המביא איכויות רפרודוקציה ללא תחרות. הוא עושה זאת על ידי הגדלה משמעותית של הטווח הדינמי של רכיב הבהירות (מ-100 cd/m 2 הנוכחיים ל-1000s של cd/m 2 ) ועל ידי שימוש במרחב צבע רחב הרבה יותר (BT 2020). זהו כעת מרכיב מרכזי באבולוציה של 4K UHD בחלל הטלוויזיה.

אנדרואיד 10 תומך בסרטוני HDR הבאים.

  • HDR10
  • VP9
  • HDR10+

החל מ-Android 9 ומעלה, MediaCodec מדווח על מטא נתונים של HDR ללא קשר למצב המנהור. אתה יכול לקבל נתונים מפוענחים יחד עם מטא נתונים סטטיים/דינמיים במצב לא מחורר. עבור HDR10 ו-VP9Profile2 המשתמשים במטא נתונים סטטיים, אלה מדווחים בפורמט הפלט עם מפתח KEY_HDR_STATIC_INFO . עבור HDR10+ שמשתמש במטא נתונים דינמיים, זה מדווח עם מפתח KEY_HDR10_PLUS_INFO בפורמט הפלט ועשוי להשתנות עבור כל מסגרת פלט. ראה מנהור מולטימדיה למידע נוסף.

מאז אנדרואיד 7.0, תמיכה ראשונית ב-HDR כוללת יצירת קבועים מתאימים לגילוי והגדרה של צינורות וידאו HDR. המשמעות היא הגדרת סוגי codec ומצבי תצוגה וציון כיצד יש להעביר נתוני HDR ל-MediaCodec ולספק אותם למפענחי HDR.

מטרת מסמך זה היא לעזור למפתחי אפליקציות לתמוך בהפעלת זרם HDR, ולעזור ליצרני OEM ו-SOCs להפעיל את תכונות ה-HDR.

טכנולוגיות HDR נתמכות

החל מ-Android 7.0 ומעלה, טכנולוגיות ה-HDR הבאות נתמכות.

טֶכנוֹלוֹגִיָה Dolby-Vision HDR10 VP9-HLG VP9-PQ
Codec AVC/HEVC HEVC VP9 VP9
פונקציית העברה ST-2084 ST-2084 HLG ST-2084
סוג מטא נתונים של HDR דִינָמִי סטָטִי אף אחד סטָטִי

ב-Android 7.0, רק השמעת HDR דרך מצב מנהור מוגדרת , אך מכשירים עשויים להוסיף תמיכה בהפעלת HDR ב-SurfaceViews באמצעות מאגרי וידאו אטומים. במילים אחרות:

  • אין אנדרואיד API סטנדרטי כדי לבדוק אם הפעלת HDR נתמכת באמצעות מפענחים ללא מנהור.
  • מפענחי וידאו עם מנהור המפרסמים יכולת השמעת HDR חייבים לתמוך בהפעלת HDR כאשר הם מחוברים לצגים בעלי יכולת HDR.
  • הרכב GL של תוכן HDR אינו נתמך על ידי מהדורת AOSP Android 7.0.

תַגלִית

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

לְהַצִיג

יישומים ישתמשו בממשק ה-API החדש Display.getHdrCapabilities כדי לבצע שאילתות בטכנולוגיות ה-HDR הנתמכות על ידי התצוגה המצוינת. זהו בעצם המידע ב-EDID Static Metadata 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
    תמיכה היברידית Log-Gamma.
  • float INVALID_LUMINANCE
    ערך בהירות לא חוקי.

שיטות ציבוריות:

  • float getDesiredMaxAverageLuminance()
    מחזירה את נתוני הבהירות המקסימליים של התוכן הרצוי ב-cd/cd/m 2 עבור תצוגה זו.
  • float getDesiredMaxLuminance()
    מחזירה את נתוני הבהירות המקסימלית של התוכן הרצויים ב-cd/cd/m 2 עבור תצוגה זו.
  • float getDesiredMinLuminance()
    מחזירה את התוכן הרצוי של נתוני בהירות מינימליים ב-cd/cd/m 2 עבור תצוגה זו.
  • int[] getSupportedHdrTypes()
    מקבל את סוגי ה-HDR הנתמכים של תצוגה זו (ראה קבועים). מחזיר מערך ריק אם HDR אינו נתמך על ידי התצוגה.

מפענח

יישומים ישתמשו ב- CodecCapabilities.profileLevels API הקיים כדי לאמת תמיכה בפרופילים החדשים בעלי יכולת HDR:

Dolby-Vision

קבוע פנטומימה 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 אינה נתמכת על ידי הפלטפורמה. יישומים עשויים לנתח את הנתונים הספציפיים ל-Codec כדי לקבוע אם רצועה דורשת פרופיל 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 או לא, אינו זמין באופן מיידי. היישום חייב לקבל מידע זה מראש או להיות מסוגל להשיג מידע זה על ידי ניתוח קטע הנתונים הספציפי ל-codec של MediaFormat.
  • CodecCapabilities.isFormatSupported לא שוקל אם תכונת המפענח במנהור נדרשת לתמיכה בפרופיל כזה.

אפשר תמיכה בפלטפורמת HDR

ספקי SoC ויצרני OEM חייבים לבצע עבודה נוספת כדי לאפשר תמיכה בפלטפורמת HDR עבור מכשיר.

שינויים בפלטפורמה באנדרואיד 7.0 עבור HDR

הנה כמה שינויים מרכזיים בפלטפורמה (אפליקציה/שכבה מקורית) שיצרני OEM ו-SOC צריכים להיות מודעים אליהם.

לְהַצִיג

הרכב החומרה

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

  1. קבע מרחב צבע ליניארי/נפח שמכיל את כל השכבות שיורכבו, בהתבסס על צבע השכבות, מאסטרינג ומטא נתונים דינמיים פוטנציאליים.
    אם מרכיבים ישירות לתצוגה, זה יכול להיות החלל הליניארי התואם לנפח הצבע של התצוגה.
  2. המר את כל השכבות למרחב הצבע המשותף.
  3. בצע את המיזוג.
  4. אם מציגים דרך HDMI:
    1. קבע את הצבע, המאסטרינג והמטא-נתונים הדינמיים הפוטנציאליים עבור הסצנה המשולבת.
    2. המר את הסצנה המשולבת שהתקבלה למרחב הצבע/נפח הנגזרים.
  5. אם מציגים ישירות לתצוגה, המר את הסצינה המשולבת שהתקבלה לאותות התצוגה הנדרשים כדי להפיק את הסצינה הזו.

גילוי תצוגה

גילוי תצוגת HDR נתמך רק באמצעות HWC2. מיישמי מכשירים חייבים להפעיל באופן סלקטיבי את מתאם HWC2 ששוחרר עם אנדרואיד 7.0 כדי שתכונה זו תפעל. לכן, פלטפורמות חייבות להוסיף תמיכה עבור HWC2 או להרחיב את מסגרת AOSP כדי לאפשר דרך לספק מידע זה. HWC2 חושף API חדש להפצת נתונים סטטיים של HDR למסגרת ולאפליקציה.

HDMI

  • צג HDMI מחובר מפרסם את יכולת ה-HDR שלו באמצעות HDMI EDID כפי שהוגדר בסעיף 4.2 של CTA-861.3 .
  • יש להשתמש במיפוי ה-EOTF הבא:
    • ET_0 גמא מסורתית - טווח זוהר SDR: לא ממופה לשום סוג HDR
    • ET_1 גמא מסורתית - טווח בהירות HDR: לא ממופה לשום סוג HDR
    • ET_2 SMPTE ST 2084 - ממופה ל-HDR מסוג HDR10
  • האיתות של תמיכה ב-Dolby Vision או ב-HLG דרך HDMI נעשה כפי שהוגדר על ידי הגופים הרלוונטיים שלהם.
  • שים לב שה-API של HWC2 משתמש בערכי הארה הרצויים לצוף, ולכן יש לתרגם את ערכי EDID של 8 סיביות בצורה מתאימה.

מפענחים

על הפלטפורמות להוסיף מפענחי מנהור בעלי יכולת 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 אחד או יותר, כמו גם קומפוזיטור. מפענחים כאלה חייבים:

  • תומך במימה מסוג "וידאו/dolby-vision".
  • פרסם פרופילים/רמות נתמכים של Dolby Vision.
  • קבל יחידות גישה המכילות את תת-יחידות הגישה של כל השכבות כפי שהוגדרו על ידי Dolby.
  • קבל נתונים ספציפיים ל-codec שהוגדרו על ידי Dolby. לדוגמה, נתונים המכילים פרופיל/רמה של Dolby Vision ואולי את הנתונים הספציפיים ל-codec עבור המפענחים הפנימיים.
  • תמכו במעבר אדפטיבי בין פרופילים/רמות של Dolby Vision כנדרש על ידי Dolby.

בעת הגדרת המפענח, פרופיל Dolby בפועל אינו מועבר ל-Codec. זה נעשה רק באמצעות נתונים ספציפיים ל-Codec לאחר הפעלת המפענח. פלטפורמה יכולה לבחור לתמוך במספר מפענחי 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) חייבים:

  • תומך במימה מסוג "video/x-vnd.on2.vp9."
  • פרסם נתמך ב-VP9Profile2HDR. תמיכה בפרופיל VP9Profile2HDR דורשת גם תמיכה בפרופיל VP9Profile2 באותה רמה.

חולצים

תמיכה במחלץ Dolby Vision

פלטפורמות התומכות במפענחי Dolby Vision חייבות להוסיף תמיכה ב-Dolby Extractor (הנקראת Dolby Extractor) עבור תוכן Dolby Video.

  • מחלץ MP4 רגיל יכול לחלץ רק את שכבת הבסיס מקובץ, אך לא את שכבות ההשבחה או המטא נתונים. אז יש צורך במחלץ מיוחד של Dolby כדי לחלץ את הנתונים מהקובץ.
  • מחלץ Dolby חייב לחשוף 1 עד 2 רצועות עבור כל רצועת וידאו של Dolby (קבוצה):
    • רצועת Dolby Vision HDR עם סוג "וידאו/dolby-vision" לזרם Dolby המשולב ב-2/3 שכבות. פורמט יחידת הגישה של מסלול ה-HDR, המגדיר כיצד לארוז את יחידות הגישה משכבות הבסיס/השיפור/מטא-נתונים למאגר יחיד לפיענוח למסגרת HDR אחת, אמור להיות מוגדר על ידי Dolby.
    • אם רצועת וידאו של Dolby Vision מכילה שכבת בסיס נפרדת (תואמת לאחור), על המחלץ לחשוף זאת גם כרצועת "וידאו/avc" או "וידאו/hevc" נפרדת. המחלץ חייב לספק יחידות גישה AVC/HEVC רגילות למסלול זה.
    • לרצועת BL חייב להיות אותו מזהה מסלול ייחודי ("מזהה רצועה") כמו רצועת HDR כך שהאפליקציה מבינה שמדובר בשני קידודים של אותו סרטון.
    • האפליקציה יכולה להחליט באיזה מסלול לבחור בהתבסס על יכולת הפלטפורמה.
  • פרופיל/רמת Dolby Vision חייבת להיות חשופה בפורמט הרצועה של רצועת ה-HDR.
  • אם פלטפורמה מספקת מפענח בעל יכולת Dolby-Vision, עליה לספק גם מחלץ מודע ל-Dolby-Vision, גם אם הוא אינו תומך בהפעלת HDR.

תמיכה במחלץ HDR10 ו-VP9

אין דרישות מחלץ נוספות לתמיכה ב-HDR10 או VP9 HLG. על הפלטפורמות להרחיב את מחלץ MP4 כדי לתמוך ב-VP9 PQ ב-MP4. יש להפיץ מטא נתונים סטטיים של HDR בזרם הסיביות של VP9 PQ, כך שמטא נתונים אלה מועברים למפענח VP9 PQ ולתצוגה דרך הצינור הרגיל של MediaExtractor => MediaCodec.

הרחבות של Stagefright לתמיכה ב-Dolby Vision

על הפלטפורמות להוסיף תמיכה בפורמט Dolby Vision ל-Stafright:

  • תמיכה בשאילתת הגדרת יציאה עבור יציאה דחוסה.
  • תמיכה בספירת פרופיל/רמה עבור מפענח DV.
  • תמיכה בחשיפת פרופיל/רמה של DV עבור רצועות DV HDR.

פרטי יישום ספציפיים לטכנולוגיה

צינור מפענח HDR10

איור 1. צינור HDR10

זרמי סיביות HDR10 ארוזים במכולות MP4. יישומים משתמשים במחלץ MP4 רגיל כדי לחלץ את נתוני המסגרת ולשלוח אותם למפענח.

  • מחלץ MPEG4
    זרמי סיביות HDR10 מזוהים רק כזרם HEVC רגיל על ידי MPEG4Extractor ורצועת HDR עם הסוג "video/HEVC" תחולץ. המסגרת בוחרת מפענח וידאו HEVC התומך בפרופיל Main10HDR10 כדי לפענח את המסלול הזה.
  • מפענח HEVC
    מידע HDR נמצא ב-SEI או ב-SPS. מפענח HEVC מקבל תחילה מסגרות המכילות את מידע HDR. לאחר מכן המפענח מחלץ את מידע HDR ומודיע לאפליקציה שהוא מפענח סרטון HDR. מידע HDR מאגד בפורמט פלט של מפענח, אשר מופץ אל פני השטח מאוחר יותר.

פעולות הספק

  1. פרסם פרופיל מפענח HDR נתמך וסוג OMX ברמה. דוגמא:
    OMX_VIDEO_HEVCProfileMain10HDR10 (ו- Main10 )
  2. הטמעת תמיכה באינדקס: ' OMX.google.android.index.describeHDRColorInfo '
  3. הטמעת תמיכה באינדקס: ' OMX.google.android.index.describeColorAspects '
  4. הטמעת תמיכה בניתוח SEI של מטא נתונים מאסטרינג.

צינור מפענח Dolby Vision

איור 2. צינור Dolby Vision

זרמי סיביות של Dolby ארוזים במיכלי MP4 כפי שהוגדרו על ידי Dolby. יישומים יכולים, בתיאוריה, להשתמש במחלץ MP4 רגיל כדי לחלץ את שכבת הבסיס, שכבת השיפור ושכבת המטא נתונים באופן עצמאי; עם זאת, זה לא מתאים לדגם הנוכחי של אנדרואיד MediaExtractor/MediaCodec.

  • DolbyExtractor:
    • זרמי סיביות של Dolby מזוהים על ידי DolbyExtractor, אשר חושף את השכבות השונות כ-1 עד 2 רצועות עבור כל רצועת דולבי וידאו (קבוצה):
      • רצועת HDR עם סוג "וידאו/dolby-vision" לזרם דולבי משולב 2/3 שכבות. פורמט יחידת הגישה של מסלול ה-HDR, המגדיר כיצד לארוז את יחידות הגישה משכבות הבסיס/השיפור/מטא-נתונים למאגר יחיד לפיענוח למסגרת HDR אחת, אמור להיות מוגדר על ידי Dolby.
      • (אופציונלי, רק אם ה-BL תואם לאחור) רצועת BL מכילה רק את שכבת הבסיס, אשר חייבת להיות ניתנת לפענוח על ידי מפענח MediaCodec רגיל, למשל, מפענח AVC/HEVC. המחלץ צריך לספק יחידות גישה רגילות ל-AVC/HEVC למסלול זה. רצועת BL זו חייבת להיות בעלת אותו מזהה מסלול ייחודי ("מזהה מסלול") כמו רצועת Dolby כך שהאפליקציה מבינה שמדובר בשני קידודים של אותו סרטון.
    • האפליקציה יכולה להחליט באיזה מסלול לבחור בהתבסס על יכולת הפלטפורמה.
    • מכיוון שלרצועת HDR יש סוג HDR ספציפי, המסגרת תבחר מפענח וידאו של Dolby כדי לפענח את הרצועה הזו. רצועת ה-BL תפוענח על ידי מפענח וידאו רגיל של AVC/HEVC.
  • DolbyDecoder:
    • ה-DolbyDecoder מקבל יחידות גישה המכילות את יחידות הגישה הנדרשות עבור כל השכבות (EL+BL+MD או BL+MD)
    • ניתן לארוז מידע CSD (נתונים ספציפיים ל-codec, כגון SPS+PPS+VPS) עבור השכבות הבודדות לתוך מסגרת CSD אחת שתוגדר על ידי Dolby. נדרשת מסגרת CSD אחת.

פעולות דולבי

  1. הגדר את האריזה של יחידות גישה עבור סכימות המיכל השונות של Dolby (למשל BL+EL+MD) עבור מפענח Dolby המופשט (כלומר פורמט המאגר המצופה על ידי מפענח HDR).
  2. הגדר את האריזה של CSD עבור מפענח Dolby המופשט.

פעולות הספק

  1. הטמעת חולץ Dolby. זה יכול להיעשות גם על ידי Dolby.
  2. שלב את DolbyExtractor במסגרת. נקודת הכניסה היא frameworks/av/media/libstagefright/MediaExtractor.cpp .
  3. הצהר על פרופיל מפענח HDR וסוג OMX ברמה. דוגמה: OMX_VIDEO_DOLBYPROFILETYPE ו- OMX_VIDEO_DOLBYLEVELTYP .
  4. הטמעת תמיכה באינדקס: 'OMX.google.android.index.describeColorAspects '
  5. הפיצו את המטא-נתונים הדינמיים של HDR לאפליקציה ולשטח בכל מסגרת. בדרך כלל מידע זה חייב להיות ארוז לתוך המסגרת המפוענחת כפי שהוגדרה על ידי Dolby, מכיוון שתקן HDMI אינו מספק דרך להעביר זאת לתצוגה.

צינור מפענח VP9

איור 3. צינור VP9-PQ

זרמי סיביות VP9 ארוזים בקונטיינרים של WebM באופן שהוגדר על ידי צוות WebM. יישומים צריכים להשתמש במחלץ WebM כדי לחלץ מטא נתונים של HDR מזרם הסיביות לפני שליחת מסגרות למפענח.

  • WebM Extractor:
  • מפענח VP9:
    • המפענח מקבל זרמי סיביות Profile2 ומפענח אותם כזרמי VP9 רגילים.
    • המפענח מקבל כל מטא נתונים סטטיים של HDR מהמסגרת.
    • המפענח מקבל מטא נתונים סטטיים דרך יחידות הגישה של זרם הסיביות עבור זרמי VP9 PQ.
    • מפענח VP9 חייב להיות מסוגל להפיץ את המטא נתונים סטטי/דינמי של HDR לתצוגה.

פעולות הספק

  1. הטמעת תמיכה באינדקס: OMX.google.android.index.describeHDRColorInfo
  2. הטמע תמיכה באינדקס: OMX.google.android.index.describeColorAspects
  3. הפצת מטא נתונים סטטיים של HDR