Phát video HDR

Video có dải động cao (HDR) là ranh giới tiếp theo về chất lượng cao giải mã video, mang đến chất lượng tái tạo cảnh chưa từng có. Có nên bằng cách tăng đáng kể dải động của thành phần độ chói (từ 100 cd/m2 hiện tại đến 1000 cd/m2) và bằng cách sử dụng hệ màu (BT 2020). Đây hiện là yếu tố trọng tâm trong quá trình phát triển 4K UHD trong không gian TV.

Android 10 hỗ trợ các video HDR sau đây.

  • HDR10
  • Văn bản 9
  • HDR10+

Kể từ Android 9 trở lên, MediaCodec sẽ báo cáo siêu dữ liệu HDR bất kể chế độ tạo đường hầm. Bạn có thể nhận dữ liệu đã giải mã cùng với siêu dữ liệu tĩnh/động ở chế độ không theo lớp. Cho HDR10 và VP9Profile2 sử dụng siêu dữ liệu tĩnh, các dữ liệu này được báo cáo ở định dạng đầu ra với khoá KEY_HDR_STATIC_INFO. Đối với HDR10+ sử dụng siêu dữ liệu động, báo cáo này được báo cáo bằng phím KEY_HDR10_PLUS_INFO trên định dạng đầu ra và có thể thay đổi đối với từng khung đầu ra. Hãy xem phần Tạo đường hầm đa phương tiện để biết thêm thông tin.

Kể từ Android 7.0, hỗ trợ HDR ban đầu bao gồm tạo các hằng số thích hợp để khám phá và thiết lập video HDR đường ống. Điều đó có nghĩa là xác định các loại bộ mã hoá và giải mã cũng như chế độ hiển thị cũng như chỉ định cách truyền dữ liệu HDR đến MediaCodec và cung cấp cho bộ giải mã HDR.

Mục đích của tài liệu này là giúp các nhà phát triển ứng dụng hỗ trợ luồng HDR phát, đồng thời giúp OEM và SOC bật các tính năng HDR.

Các công nghệ HDR được hỗ trợ

Kể từ Android 7.0 trở lên, các công nghệ HDR sau đây được hỗ trợ.

Công nghệ Dolby-Vision HDR10 VP9-HLG VP9-PQ
Bộ mã hoá và giải mã AVC/HEVC chuẩn HEVC Văn bản 9 Văn bản 9
Hàm truyền ST-2084 ST-2084 HLG ST-2084
Loại siêu dữ liệu HDR Động Tĩnh Không có Tĩnh

Trong Android 7.0, chỉ xác định tính năng phát HDR qua chế độ đường hầm, nhưng các thiết bị có thể hỗ trợ thêm tính năng phát HDR trên SurfaceViews bằng độ mờ vùng đệm video. Hay nói cách khác:

  • Không có API Android tiêu chuẩn để kiểm tra xem tính năng phát HDR có được hỗ trợ hay không sử dụng bộ giải mã không được truyền kỹ thuật số.
  • Bộ giải mã video được tạo đường hầm quảng cáo khả năng phát HDR phải hỗ trợ phát HDR khi kết nối với màn hình hỗ trợ HDR.
  • Thành phần GL của nội dung HDR không được AOSP Android hỗ trợ Bản phát hành 7.0.

Khám phá

Tính năng Phát HDR yêu cầu bộ giải mã hỗ trợ HDR và kết nối với Màn hình hỗ trợ HDR. Nếu muốn, một số công nghệ yêu cầu mã theo dõi trình trích xuất.

Màn hình

Các ứng dụng sẽ sử dụng Display.getHdrCapabilities mới API để truy vấn các công nghệ HDR mà màn hình được chỉ định hỗ trợ. Đây là về cơ bản, thông tin trong Khối dữ liệu siêu dữ liệu tĩnh EDID như được định nghĩa trong CTA-861.3:


  • public Display.HdrCapabilities getHdrCapabilities() Trả về tính năng HDR của màn hình.

  • Display.HdrCapabilities Bao gồm các tính năng HDR của một màn hình cụ thể. Ví dụ: HDR các loại mà nó hỗ trợ và thông tin chi tiết về dữ liệu về độ chói mong muốn.

Hằng số:


  • int HDR_TYPE_DOLBY_VISION Hỗ trợ Dolby Vision.

  • int HDR_TYPE_HDR10 Hỗ trợ HDR10 / PQ.

  • int HDR_TYPE_HDR10_PLUS Hỗ trợ HDR10+.

  • int HDR_TYPE_HLG Hỗ trợ Log-Gamma kết hợp.

  • float INVALID_LUMINANCE Giá trị độ chói không hợp lệ.

Các phương thức công khai:


  • float getDesiredMaxAverageLuminance() Trả về dữ liệu độ chói trung bình của khung tối đa của nội dung mong muốn tính bằng cd/cd/m2 cho màn hình này.

  • float getDesiredMaxLuminance() Trả về dữ liệu độ chói tối đa của nội dung mong muốn bằng cd/cd/m2 cho màn hình này.

  • float getDesiredMinLuminance() Trả về dữ liệu độ chói tối thiểu của nội dung mong muốn bằng cd/cd/m2 cho màn hình này.

  • int[] getSupportedHdrTypes() Lấy các loại HDR được hỗ trợ của màn hình này (xem các hằng số). Trả về kết quả trống nếu màn hình không hỗ trợ HDR.

Bộ giải mã

Ứng dụng sẽ sử dụng CodecCapabilities.profileLevels API để xác minh khả năng hỗ trợ cho các cấu hình mới hỗ trợ HDR:

Dolby-Vision

Hằng số mime MediaFormat:

String MIMETYPE_VIDEO_DOLBY_VISION

Hằng số hồ sơ MediaCodecInfo.CodecProfileLevel:

int DolbyVisionProfileDvavPen
int DolbyVisionProfileDvavPer
int DolbyVisionProfileDvheDen
int DolbyVisionProfileDvheDer
int DolbyVisionProfileDvheDtb
int DolbyVisionProfileDvheDth
int DolbyVisionProfileDvheDtr
int DolbyVisionProfileDvheStn

Các lớp video và siêu dữ liệu Dolby Vision phải được nối thành một vùng đệm trên mỗi khung hình bằng các ứng dụng video. Việc này được thực hiện tự động bằng Trình trích xuất nội dung hỗ trợ Dolby Vision.

HDR chuẩn HEVC 10

Hằng số hồ sơ MediaCodecInfo.CodecProfileLevel:

int HEVCProfileMain10HDR10
int HEVCProfileMain10HDR10Plus

VP9 HLG và PQ

Hồ sơ trên MediaCodecInfo.CodecProfileLevel hằng số:

int VP9Profile2HDR
int VP9Profile2HDR10Plus
int VP9Profile3HDR
int VP9Profile3HDR10Plus

Nếu một nền tảng hỗ trợ bộ giải mã có khả năng HDR, nền tảng đó cũng phải hỗ trợ Trình trích xuất hỗ trợ HDR.

Chỉ những bộ giải mã được tạo đường hầm mới đảm bảo phát được nội dung HDR. Phát bằng bộ giải mã không được truyền âm thanh có thể dẫn đến thông tin HDR bị mất và nội dung đang được làm phẳng thành một dải màu SDR.

Công cụ trích xuất

Các vùng chứa sau được hỗ trợ cho nhiều công nghệ HDR trên Android 7.0:

Công nghệ Dolby-Vision HDR10 VP9-HLG VP9-PQ
Vùng chứa MP4 MP4 WebM WebM

Khám phá xem một bản nhạc (của một tệp) có cần hỗ trợ HDR không mà nền tảng hỗ trợ. Ứng dụng có thể phân tích cú pháp dữ liệu dành riêng cho bộ mã hoá và giải mã để xác định xem một bản nhạc có yêu cầu cấu hình HDR cụ thể hay không.

Tóm tắt

Bảng sau đây trình bày các yêu cầu về thành phần đối với từng công nghệ HDR:

Công nghệ Dolby-Vision HDR10 VP9-HLG VP9-PQ
Loại HDR được hỗ trợ (Hiển thị) HDR_TYPE_DOLBY_VISION HDR_TYPE_HDR10 HDR_TYPE_HLG HDR_TYPE_HDR10
Vùng chứa (Trình trích xuất) MP4 MP4 WebM WebM
Bộ giải mã MIMETYPE_VIDEO_DOLBY_VISION MIMETYPE_VIDEO_HEVC MIMETYPE_VIDEO_VP9 MIMETYPE_VIDEO_VP9
Cấu hình (Bộ giải mã) Một trong các cấu hình Dolby HEVCProfileMain10HDR10 VP9Profile2HDR hoặc VP9Profile3HDR VP9Profile2HDR hoặc VP9Profile3HDR

Lưu ý:

  • Luồng bit Dolby-Vision được đóng gói trong vùng chứa MP4 theo cách được xác định của Dolby. Các ứng dụng có thể triển khai trình trích xuất có khả năng Dolby riêng như miễn là chúng đóng gói các đơn vị truy cập từ các lớp tương ứng thành một đơn vị truy cập duy nhất cho bộ giải mã do Dolby xác định.
  • Một nền tảng có thể hỗ trợ một trình trích xuất có khả năng HDR, nhưng không có Bộ giải mã hỗ trợ HDR.

Phát

Sau khi xác minh khả năng hỗ trợ phát HDR, ứng dụng có thể phát quay lại nội dung HDR gần giống cách phát lại nội dung không phải HDR, bạn cũng cần lưu ý một số điều sau:

  • Đối với Dolby-Vision, cho dù tệp/bản nhạc nội dung nghe nhìn cụ thể có yêu cầu hay không bộ giải mã có hỗ trợ HDR không có sẵn ngay. Ứng dụng phải có trước thông tin này hoặc có thể có được thông tin này bằng cách phân tích cú pháp phần dữ liệu dành riêng cho bộ mã hoá và giải mã trong MediaFormat.
  • CodecCapabilities.isFormatSupported không cân nhắc việc bạn cần có tính năng bộ giải mã được tạo đường hầm để hỗ trợ cấu hình như vậy.

Bật tính năng hỗ trợ nền tảng HDR

Nhà cung cấp SoC và OEM (Nhà sản xuất thiết bị gốc) phải làm thêm một số việc để hỗ trợ nền tảng HDR dành cho một thiết bị.

Những thay đổi về nền tảng trong Android 7.0 đối với HDR

Dưới đây là một số thay đổi quan trọng trong nền tảng (lớp ứng dụng/lớp gốc) OEM và SOC cần biết.

Màn hình

Thành phần phần cứng

Các nền tảng có hỗ trợ HDR phải hỗ trợ chế độ kết hợp nội dung HDR với những nội dung không phải HDR nội dung. Chưa xác định được đặc tính và hoạt động phối trộn chính xác của Android kể từ bản phát hành 7.0 nhưng quá trình này thường tuân theo các bước sau:

  1. Xác định hệ màu/khối màu tuyến tính chứa tất cả các lớp cần tổng hợp, dựa trên các lớp' màu sắc, khả năng điều chỉnh màu sắc và hiệu ứng động tiềm năng siêu dữ liệu.
    Nếu việc kết hợp trực tiếp với một màn hình, đây có thể là không gian tuyến tính khớp với âm lượng màu của màn hình.
  2. Chuyển đổi tất cả các lớp sang hệ màu chung.
  3. Thực hiện quá trình trộn.
  4. Nếu hiển thị qua HDMI:
    1. Xác định màu sắc, màu sắc và siêu dữ liệu động tiềm năng cho cảnh kết hợp.
    2. Chuyển đổi cảnh kết hợp thu được sang màu phát sinh không gian/âm lượng.
  5. Nếu hiển thị trực tiếp trên màn hình, hãy chuyển đổi kết quả kết hợp sang các tín hiệu hiển thị cần thiết để tạo ra cảnh đó.

Khám phá trên Mạng Hiển thị

Tính năng khám phá hiển thị HDR chỉ được hỗ trợ qua HWC2. Trình triển khai thiết bị phải bật có chọn lọc bộ điều hợp HWC2 được phát hành cùng với Android 7.0 cho tính năng này làm việc. Do đó, các nền tảng phải thêm tính năng hỗ trợ cho HWC2 hoặc mở rộng Khung AOSP (Dự án nguồn mở Android) để cho phép cách cung cấp thông tin này. HWC2 giới thiệu một tính năng mới API để truyền Dữ liệu tĩnh HDR đến khung và ứng dụng.

HDMI

  • Màn hình HDMI được kết nối sẽ quảng cáo khả năng HDR thông qua HDMI EDID như được xác định trong CTA-861.3 phần 4.2.
  • Ánh xạ EOTF sau đây sẽ được sử dụng:
    • ET_0 gamma truyền thống - Phạm vi độ chói SDR: không được ánh xạ tới bất kỳ HDR nào lượt chuyển đổi
    • ET_1 gamma truyền thống - Phạm vi độ sáng HDR: không được ánh xạ với bất kỳ HDR nào lượt chuyển đổi
    • ET_2 SMPTE ST 2084 – ánh xạ tới loại HDR10
  • Việc báo hiệu chế độ hỗ trợ Dolby Vision hoặc HLG qua HDMI được thực hiện theo quy định theo các cơ quan có liên quan.
  • Lưu ý rằng API HWC2 sử dụng các giá trị độ chói mong muốn có độ chính xác đơn, vì vậy, 8 bit Các giá trị EDID phải được dịch theo cách phù hợp.

Bộ giải mã

Các nền tảng phải thêm bộ giải mã có đường hầm có khả năng HDR và quảng cáo HDR của chúng của Google. Thông thường, bộ giải mã hỗ trợ HDR phải:

  • Hỗ trợ giải mã theo đường hầm (FEATURE_TunneledPlayback).
  • Hỗ trợ siêu dữ liệu tĩnh HDR (OMX.google.android.index.describeHDRColorInfo) và truyền tải đến cấu trúc màn hình/phần cứng. Siêu dữ liệu phù hợp đối với HLG phải được gửi đến màn hình.
  • Mô tả màu sắc hỗ trợ (OMX.google.android.index.describeColorAspects) và truyền tải đến cấu trúc màn hình/phần cứng.
  • Hỗ trợ siêu dữ liệu HDR được nhúng theo quy định của tiêu chuẩn liên quan.

Hỗ trợ bộ giải mã Dolby Vision

Để hỗ trợ Dolby Vision, các nền tảng phải thêm một thiết bị có khả năng Dolby-Vision Bộ giải mã HDR OMX. Dựa vào thông số cụ thể của Dolby Vision, đây thường là bộ giải mã trình bao bọc xung quanh một hoặc nhiều bộ giải mã AVC và/hoặc HEVC cũng như một trình tổng hợp. Những bộ giải mã đó phải:

  • Hỗ trợ loại mime "video/dolby-vision".
  • Quảng cáo các cấu hình/cấp độ Dolby Vision được hỗ trợ.
  • Chấp nhận đơn vị truy cập chứa đơn vị truy cập phụ của tất cả các lớp làm do Dolby xác định.
  • Chấp nhận dữ liệu dành riêng cho bộ mã hoá và giải mã do Dolby xác định. Ví dụ: dữ liệu chứa Cấu hình/cấp độ Dolby Vision và có thể là dữ liệu dành riêng cho bộ mã hoá và giải mã cho bộ giải mã nội bộ.
  • Hỗ trợ chuyển đổi thích ứng giữa các cấu hình/cấp độ Dolby Vision như theo yêu cầu của Dolby.

Khi định cấu hình bộ giải mã, cấu hình Dolby thực tế sẽ không được thông báo vào bộ mã hoá và giải mã. Việc này chỉ được thực hiện thông qua dữ liệu dành riêng cho bộ mã hoá và giải mã sau bộ giải mã đã được bắt đầu. Một nền tảng có thể chọn hỗ trợ nhiều Dolby Vision bộ giải mã: một dùng cho hồ sơ AVC và một dùng cho hồ sơ HEVC để có thể khởi chạy bộ mã hoá và giải mã cơ bản trong thời gian định cấu hình. Nếu một Dolby Vision bộ giải mã hỗ trợ cả hai loại cấu hình, bộ giải mã này cũng phải hỗ trợ chuyển đổi giữa các quảng cáo một cách linh động theo cách thích ứng.

Nếu một nền tảng cung cấp bộ giải mã hỗ trợ Dolby-Vision ngoài bộ giải mã HDR chung, bộ giải mã này phải:

  • Cung cấp trình trích xuất nhận biết Dolby-Vision, ngay cả khi công cụ này không hỗ trợ Phát HDR.
  • Cung cấp bộ giải mã hỗ trợ cấu hình thị giác như do Dolby xác định.

Hỗ trợ bộ giải mã HDR10

Để hỗ trợ HDR10, các nền tảng phải thêm bộ giải mã OMX có khả năng HDR10. Chiến dịch này thường là bộ giải mã HEVC dưới dạng đường hầm, cũng hỗ trợ phân tích cú pháp và xử lý Siêu dữ liệu liên quan đến HDMI. Một bộ giải mã như vậy (ngoài bộ giải mã HDR chung support) phải:

  • Hỗ trợ loại MIME "video/hevc".
  • Quảng cáo định dạng HEVCMain10HDR10 được hỗ trợ. Hỗ trợ hồ sơ HEVCMain10HRD10 cũng yêu cầu hỗ trợ hồ sơ HEVCMain10, vốn đòi hỏi việc hỗ trợ cấu hình HEVCMain ở cùng các cấp độ.
  • Hỗ trợ phân tích cú pháp các khối SEI siêu dữ liệu kiểm soát, cũng như các HDR khác thông tin liên quan có trong SPS.

Hỗ trợ bộ giải mã VP9

Để hỗ trợ HDR VP9, các nền tảng phải thêm OMX HDR có hỗ trợ VP9 Profile2 bộ giải mã. Đây thường là bộ giải mã VP9 được tạo đường hầm cũng hỗ trợ xử lý Siêu dữ liệu liên quan đến HDMI. Các bộ giải mã như vậy (ngoài bộ giải mã HDR chung support) phải:

  • Hỗ trợ loại mime "video/x-vnd.on2.vp9."
  • Quảng cáo VP9Profile2HDR được hỗ trợ. Hỗ trợ cả cấu hình VP9Profile2HDR yêu cầu hỗ trợ cấu hình VP9Profile2 ở cùng cấp.

Dụng cụ trích xuất

Hỗ trợ trình trích xuất Dolby Vision

Các nền tảng hỗ trợ bộ giải mã Dolby Vision phải thêm bộ trích xuất Dolby Hỗ trợ (được gọi là Dolby Extractor) cho nội dung Dolby Video.

  • Một trình trích xuất MP4 thông thường chỉ có thể trích xuất lớp cơ sở từ một tệp, nhưng không phải các lớp nâng cao hoặc lớp siêu dữ liệu. Vì vậy, một trình trích xuất Dolby đặc biệt cần thiết để trích xuất dữ liệu từ tệp.
  • Trình trích xuất Dolby phải hiển thị từ 1 đến 2 bản nhạc cho mỗi bản video Dolby (nhóm):
    • Một bản nhạc Dolby Vision HDR thuộc loại "video/dolby-vision" cho kết hợp luồng Dolby 2/3 lớp. Định dạng đơn vị truy cập của bản nhạc HDR, xác định cách đóng gói các đơn vị truy cập từ phần cơ sở/tính năng nâng cao/siêu dữ liệu nhiều lớp vào một bộ đệm duy nhất để được giải mã thành một khung HDR đơn lẻ là do Dolby xác định.
    • Nếu một bản video Dolby Vision chứa một đoạn video riêng biệt (tương thích ngược) lớp cơ sở (BL), trình trích xuất cũng phải hiển thị lớp này dưới dạng một "video/avc" riêng biệt hoặc "video/hevc" bản nhạc. Trình trích xuất phải cung cấp quyền truy cập AVC/HEVC thường xuyên cho kênh này.
    • Bản nhạc BL phải có cùng track-single-ID ("track-ID") với Theo dõi HDR để ứng dụng hiểu rằng đây là hai kiểu mã hoá của cùng một video.
    • Ứng dụng có thể quyết định chọn kênh nào dựa trên chức năng.
  • Cấp/cấu hình Dolby Vision phải được hiển thị ở định dạng theo dõi bản nhạc HDR.
  • Nếu một nền tảng cung cấp bộ giải mã có hỗ trợ Dolby-Vision, thì nền tảng đó cũng phải cung cấp trình trích xuất nhận biết Dolby-Vision, ngay cả khi không hỗ trợ phát HDR.

Hỗ trợ trình trích xuất HDR10 và VP9

Không có yêu cầu bổ sung nào về trình trích xuất để hỗ trợ HDR10 hoặc VP9 HLG. Các nền tảng phải mở rộng trình trích xuất MP4 để hỗ trợ định dạng VP9 PQ trong MP4. HDR Siêu dữ liệu tĩnh phải được truyền trong luồng bit PQ của VP9 để được truyền tới bộ giải mã PQ của VP9 và tới màn hình thông qua MediaExtractor => Quy trình MediaCodec.

Tiện ích Stagefright hỗ trợ Dolby Vision

Các nền tảng phải thêm tính năng hỗ trợ định dạng Dolby Vision vào Stagefright:

  • Hỗ trợ truy vấn định nghĩa cổng cho cổng được nén.
  • Hỗ trợ liệt kê hồ sơ/cấp độ cho bộ giải mã DV.
  • Hỗ trợ hiển thị hồ sơ/cấp độ DV cho các kênh DV HDR.

Thông tin chi tiết về việc triển khai theo từng công nghệ

Quy trình giải mã HDR10

Hình 1. Quy trình HDR10

Luồng bit HDR10 được đóng gói trong vùng chứa MP4. Các ứng dụng dùng mã thông thường Trình trích xuất MP4 để trích xuất dữ liệu khung và gửi dữ liệu đó đến bộ giải mã.

  • Trình trích xuất MPEG4
    Luồng bit HDR10 được công nhận là luồng HEVC thông thường MPEG4Extractor và bản nhạc HDR thuộc loại "video/HEVC" sẽ là đã trích xuất. Khung này chọn một bộ giải mã video HEVC hỗ trợ Cấu hình Main10HDR10 để giải mã bản nhạc đó.
  • Bộ giải mã HEVC
    Thông tin HDR ở định dạng SEI hoặc SPS. Bộ giải mã HEVC trước tiên sẽ nhận được khung hình có chứa thông tin HDR. Sau đó, bộ giải mã sẽ trích xuất HDR và thông báo cho ứng dụng rằng ứng dụng đang giải mã video HDR. HDR được nhóm vào định dạng đầu ra của bộ giải mã, định dạng này sẽ được truyền tới nền tảng sau này.

Hành động của nhà cung cấp

  1. Quảng cáo cấu hình bộ giải mã HDR được hỗ trợ và loại OMX cấp độ. Ví dụ:
    OMX_VIDEO_HEVCProfileMain10HDR10 (và Main10)
  2. Triển khai tính năng hỗ trợ cho chỉ mục: "OMX.google.android.index.describeHDRColorInfo"
  3. Triển khai tính năng hỗ trợ cho chỉ mục: "OMX.google.android.index.describeColorAspects"
  4. Triển khai chức năng hỗ trợ phân tích cú pháp SEI cho việc kiểm soát siêu dữ liệu.

Quy trình giải mã Dolby Vision

Hình 2. Quy trình Dolby Vision

Dolby-bitstreams được đóng gói trong vùng chứa MP4 như được xác định bởi Dolby. Theo lý thuyết, các ứng dụng có thể sử dụng một trình trích xuất MP4 thông thường để trích xuất lớp cơ sở, lớp nâng cao và lớp siêu dữ liệu; tuy nhiên, định dạng này không phù hợp với mô hình Android MediaExtractor/MediaCodec hiện tại.

  • DolbyExtractor:
    • Các luồng bit Dolby được nhận dạng bởi DolbyExtractor, hiển thị thành 1 đến 2 kênh cho mỗi bản video dolby (nhóm):
      • Bản nhạc HDR thuộc loại "video/dolby-vision" cho dữ liệu kết hợp Luồng dolby 2/3 lớp. Định dạng đơn vị truy cập của bản nhạc HDR, xác định cách đóng gói đơn vị truy cập từ các lớp cơ sở/nâng cao/siêu dữ liệu vào một bộ đệm duy nhất để được giải mã thành một khung HDR đơn lẻ, được xác định của Dolby.
      • (Không bắt buộc, chỉ khi BL có khả năng tương thích ngược) Bản nhạc BL chứa chỉ có lớp cơ sở, có thể giải mã bằng bộ giải mã MediaCodec thông thường, ví dụ: bộ giải mã AVC/HEVC. Trình trích xuất phải cung cấp AVC/HEVC thông thường cho các đơn vị truy cập của kênh này. Kênh BL này phải có cùng track-Unique-ID ("track-ID") làm theo dõi Dolby để ứng dụng hiểu rằng là hai kiểu mã hoá của cùng một video.
    • Ứng dụng có thể quyết định chọn kênh nào dựa trên chức năng.
    • Vì bản nhạc HDR có một loại HDR cụ thể, nên khung sẽ chọn một bộ giải mã video Dolby để giải mã bản nhạc đó. Kênh BL sẽ được giải mã bằng bộ giải mã video AVC/HEVC thông thường.
  • Bộ giải mã Dolby:
    • DolbyDecoder nhận các đơn vị truy cập có chứa quyền truy cập bắt buộc đơn vị cho tất cả các lớp (EL+BL+MD hoặc BL+MD)
    • CSD (dữ liệu cụ thể của bộ mã hoá và giải mã, chẳng hạn như thông tin về SPS+PPS+VPS) cho từng lớp riêng lẻ có thể được đóng gói vào 1 khung CSD được xác định bằng cách Dolby. Bạn phải có một khung CSD.

Thao tác đối với Dolby

  1. Xác định cách đóng gói đơn vị truy cập cho các vùng chứa Dolby khác nhau các lược đồ (ví dụ: BL+EL+MD) cho bộ giải mã Dolby trừu tượng (ví dụ: vùng đệm mà bộ giải mã HDR mong đợi).
  2. Xác định việc đóng gói CSD cho bộ giải mã Dolby trừu tượng.

Hành động của nhà cung cấp

  1. Triển khai trình trích xuất Dolby. Dolby cũng có thể thực hiện việc này.
  2. Tích hợp DolbyExtractor vào khung. Điểm truy cập là frameworks/av/media/libstagefright/MediaExtractor.cpp.
  3. Khai báo cấu hình bộ giải mã HDR và OMX cấp độ loại. Ví dụ: OMX_VIDEO_DOLBYPROFILETYPEOMX_VIDEO_DOLBYLEVELTYP
  4. Triển khai tính năng hỗ trợ cho chỉ mục: 'OMX.google.android.index.describeColorAspects phút
  5. Truyền siêu dữ liệu HDR động cho ứng dụng và hiển thị trong mỗi khung. Thông thường, thông tin này phải được đóng gói vào khung đã giải mã như được xác định bởi Dolby, vì tiêu chuẩn HDMI không cung cấp cách hãy truyền mã này đến màn hình.

Đường ống giải mã VP9

Hình 3. Quy trình VP9-PQ

Luồng bit VP9 được đóng gói trong vùng chứa WebM theo cách được WebM . Các ứng dụng cần sử dụng trình trích xuất WebM để trích xuất siêu dữ liệu HDR từ luồng bit trước khi gửi khung đến bộ giải mã.

  • Trình trích xuất WebM:
  • Bộ giải mã VP9:
    • Bộ giải mã nhận luồng bit Profile2 và giải mã chúng như VP9 bình thường phát trực tuyến.
    • Bộ giải mã nhận mọi siêu dữ liệu tĩnh HDR từ khung.
    • Bộ giải mã nhận siêu dữ liệu tĩnh thông qua đơn vị truy cập luồng bit cho VP9 Luồng PQ.
    • Bộ giải mã VP9 phải có khả năng truyền siêu dữ liệu tĩnh/động HDR vào màn hình.

Hành động của nhà cung cấp

  1. Triển khai tính năng hỗ trợ cho chỉ mục: OMX.google.android.index.describeHDRColorInfo
  2. Triển khai tính năng hỗ trợ cho chỉ mục: OMX.google.android.index.describeColorAspects
  3. Truyền siêu dữ liệu tĩnh HDR