Phát lại video HDR

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

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

  • HDR10
  • VP9
  • HDR10+

Bắt đầu từ Android 9 trở lên, MediaCodec báo cáo siêu dữ liệu HDR bất kể chế độ đường hầm. Bạn có thể nhận dữ liệu được giải mã cùng với siêu dữ liệu tĩnh/động ở chế độ không tạo đường hầm. Đối với HDR10 và VP9Profile2 sử dụng siêu dữ liệu tĩnh, những siêu dữ liệu này được báo cáo ở định dạng đầu ra với khóa KEY_HDR_STATIC_INFO . Đối với HDR10+ sử dụng siêu dữ liệu động, điều này được báo cáo bằng khóa KEY_HDR10_PLUS_INFO trên định dạng đầu ra và có thể thay đổi đối với từng khung hình đầu ra. Xem Đườ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 việc tạo các hằng số thích hợp để khám phá và thiết lập các đường dẫn video HDR. Điều đó có nghĩa là xác định loại codec và chế độ hiển thị cũng như chỉ định cách dữ liệu HDR phải được chuyển đế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ợ phát lại luồng HDR, đồng thời giúp các OEM và SOC kích hoạ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 được hỗ trợ.

Công nghệ Tầm nhìn Dolby HDR10 VP9-HLG VP9-PQ
Bộ giải mã AVC/HEVC HEVC VP9 VP9
Hàm chuyển ST-2084 ST-2084 HLG ST-2084
Loại siêu dữ liệu HDR Năng động Tĩnh Không có Tĩnh

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

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

Khám phá

Phát lại HDR yêu cầu bộ giải mã có khả năng HDR và ​​​​kết nối với màn hình có khả năng HDR. Tùy chọn, một số công nghệ yêu cầu một trình trích xuất cụ thể.

Trưng bày

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

  • public Display.HdrCapabilities getHdrCapabilities()
    Trả về khả năng HDR của màn hình.
  • Display.HdrCapabilities
    Đóng gói khả năng HDR của một màn hình nhất định. Ví dụ: loại HDR nào nó hỗ trợ và thông tin chi tiết về dữ liệu độ 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ợ lai Log-Gamma.
  • float INVALID_LUMINANCE
    Giá trị độ chói không hợp lệ.

Phương pháp công khai:

  • float getDesiredMaxAverageLuminance()
    Trả về dữ liệu độ chói trung bình khung hình tối đa của nội dung mong muốn bằng cd/cd/m 2 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 theo cd/cd/m 2 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/m 2 cho màn hình này.
  • int[] getSupportedHdrTypes()
    Nhận các loại HDR được hỗ trợ của màn hình này (xem các hằng số). Trả về mảng trống nếu màn hình không hỗ trợ HDR.

Bộ giải mã

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

Tầm nhìn Dolby

Hằng số mime MediaFormat :

String MIMETYPE_VIDEO_DOLBY_VISION

Hằng số cấu hình 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 vào một bộ đệm duy nhất cho 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ởi MediaExtractor có khả năng Dolby-Vision.

HEVC HDR 10

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

int HEVCProfileMain10HDR10
int HEVCProfileMain10HDR10Plus

VP9 HLG & PQ

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

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 thì nền tảng đó cũng phải hỗ trợ bộ giải mã có khả năng HDR.

Chỉ bộ giải mã đường hầm mới được đảm bảo phát lại nội dung HDR. Việc phát lại bằng bộ giải mã không có đường hầm có thể khiến thông tin HDR bị mất và nội dung bị làm phẳng thành khối màu SDR.

Máy vắt

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

Công nghệ Tầm nhìn Dolby HDR10 VP9-HLG VP9-PQ
Thùng đựng hàng MP4 MP4 WebM WebM

Việc khám phá xem bản nhạc (của một tệp) có yêu cầu hỗ trợ HDR không được nền tảng hỗ trợ hay không. Các ứng dụng có thể phân tích dữ liệu dành riêng cho codec để xác định xem bản nhạc có yêu cầu cấu hình HDR cụ thể hay không.

Bản tóm tắt

Yêu cầu thành phần cho từng công nghệ HDR được thể hiện trong bảng sau:

Công nghệ Tầm nhìn Dolby 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
Thùng chứa (Máy chiết) MP4 MP4 WebM WebM
Bộ giải mã MIMETYPE_VIDEO_DOLBY_VISION MIMETYPE_VIDEO_HEVC MIMETYPE_VIDEO_VP9 MIMETYPE_VIDEO_VP9
Hồ sơ (Bộ giải mã) Một trong những hồ sơ Dolby HEVCHồ sơMain10HDR10 VP9Profile2HDR hoặc VP9Profile3HDR VP9Profile2HDR hoặc VP9Profile3HDR

Ghi chú:

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

Phát lại

Sau khi ứng dụng đã xác minh khả năng hỗ trợ phát lại HDR, ứng dụng đó có thể phát lại nội dung HDR gần giống như cách phát lại nội dung không phải HDR, với những lưu ý sau:

  • Đối với Dolby-Vision, việc một tệp/rãnh phương tiện cụ thể có yêu cầu bộ giải mã có khả năng HDR hay không đều không khả dụng ngay lập tức. Ứng dụng phải có thông tin này trước hoặc có thể lấy thông tin này bằng cách phân tích phần dữ liệu dành riêng cho codec của MediaFormat.
  • CodecCapabilities.isFormatSupported không xem xét liệu tính năng bộ giải mã đường hầm có cần thiết để hỗ trợ cấu hình như vậy hay không.

Kích hoạt hỗ trợ nền tảng HDR

Các nhà cung cấp SoC và OEM phải thực hiện công việc bổ sung để hỗ trợ nền tảng HDR cho thiết bị.

Thay đổi nền tảng trong Android 7.0 cho HDR

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

Trưng bày

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

Nền tảng có hỗ trợ HDR phải hỗ trợ trộn nội dung HDR với nội dung không phải HDR. Các đặc điểm và hoạt động hòa trộn chính xác không được Android xác định kể từ phiên bản 7.0 nhưng quy trình thường tuân theo các bước sau:

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

Hiển thị khám phá

Khám phá màn hình HDR chỉ được hỗ trợ qua HWC2. Người triển khai thiết bị phải kích hoạt có chọn lọc bộ điều hợp HWC2 được phát hành cùng với Android 7.0 để tính năng này hoạt động. Do đó, các nền tảng phải thêm hỗ trợ cho HWC2 hoặc mở rộng khung AOSP để cho phép cung cấp thông tin này. HWC2 đưa ra một API mới để truyền Dữ liệu tĩnh HDR tới 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 của nó thông qua HDMI EDID như được định nghĩa trong CTA-861.3 phần 4.2.
  • Phải sử dụng ánh xạ EOTF sau:
    • ET_0 Gamma truyền thống - Phạm vi độ sáng SDR: không được ánh xạ tới bất kỳ loại HDR nào
    • ET_1 Gamma truyền thống - Phạm vi độ sáng HDR: không được ánh xạ tới bất kỳ loại HDR nào
    • ET_2 SMPTE ST 2084 - được ánh xạ tới loại HDR HDR10
  • Việc truyền tín hiệu hỗ trợ Dolby Vision hoặc HLG qua HDMI được thực hiện theo quy định của các cơ quan liên quan.
  • Lưu ý rằng API HWC2 sử dụng các giá trị độ chói mong muốn nổi, do đó, các giá trị EDID 8 bit phải được dịch theo kiểu phù hợp.

Bộ giải mã

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

  • Hỗ trợ giải mã đường hầm ( FEATURE_TunneledPlayback ).
  • Hỗ trợ siêu dữ liệu tĩnh HDR ( OMX.google.android.index.describeHDRColorInfo ) và khả năng truyền siêu dữ liệu đó tới thành phần màn hình/phần cứng. Đối với HLG, siêu dữ liệu phù hợp phải được gửi tới màn hình.
  • Hỗ trợ mô tả màu sắc ( OMX.google.android.index.describeColorAspects ) và sự lan truyền của nó tới thành phần màn hình/phần cứng.
  • Hỗ trợ siêu dữ liệu nhúng HDR 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 bộ giải mã HDR OMX có khả năng Dolby-Vision. Dựa trên các đặc điểm cụ thể của Dolby Vision, đây thường là bộ giải mã bao bọc xung quanh một hoặc nhiều bộ giải mã AVC và/hoặc HEVC cũng như bộ tổng hợp. Bộ giải mã như vậy phải:

  • Hỗ trợ loại mime "video/dolby-vision."
  • Quảng cáo cấu hình/cấp độ Dolby Vision được hỗ trợ.
  • Chấp nhận các đơn vị truy cập chứa các đơn vị truy cập phụ của tất cả các lớp như được xác định bởi Dolby.
  • Chấp nhận dữ liệu dành riêng cho codec 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 codec cho bộ giải mã bên trong.
  • Hỗ trợ chuyển đổi thích ứng giữa các cấu hình/mức độ Dolby Vision 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ế không được truyền tới bộ giải mã. Điều này chỉ được thực hiện thông qua dữ liệu dành riêng cho codec sau khi bộ giải mã được khởi động. Một nền tảng có thể chọn hỗ trợ nhiều bộ giải mã Dolby Vision: một cho cấu hình AVC và một cho cấu hình HEVC để có thể khởi tạo các codec cơ bản trong thời gian định cấu hình. Nếu một bộ giải mã Dolby Vision duy nhất hỗ trợ cả hai loại cấu hình thì nó cũng phải hỗ trợ chuyển đổi linh hoạt giữa các loại cấu hình đó theo kiểu thích ứng.

Nếu một nền tảng cung cấp bộ giải mã có khả năng Dolby-Vision ngoài hỗ trợ bộ giải mã HDR chung thì nền tảng đó phải:

  • Cung cấp trình trích xuất nhận biết Dolby-Vision, ngay cả khi nó không hỗ trợ phát lại HDR.
  • Cung cấp bộ giải mã hỗ trợ cấu hình hình ảnh theo định nghĩa của Dolby.

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 hỗ trợ HDR10. Đây thường là bộ giải mã HEVC có đườ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. Bộ giải mã như vậy (ngoài hỗ trợ bộ giải mã HDR chung) phải:

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

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

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

  • Hỗ trợ gõ mime "video/x-vnd.on2.vp9."
  • Quảng cáo được hỗ trợ VP9Profile2HDR. Hỗ trợ hồ sơ VP9Profile2HDR cũng yêu cầu hỗ trợ hồ sơ VP9Profile2 ở cùng cấp độ.

Máy chiết

Hỗ trợ giải nén Dolby Vision

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

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

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

Không có yêu cầu trích xuất bổ sung nào để hỗ trợ HDR10 hoặc VP9 HLG. Nền tảng phải mở rộng trình trích xuất MP4 để hỗ trợ VP9 PQ trong MP4. Siêu dữ liệu tĩnh HDR phải được truyền trong dòng bit VP9 PQ, sao cho siêu dữ liệu này được chuyển đến bộ giải mã VP9 PQ và tới màn hình thông qua đường dẫn MediaExtractor => MediaCodec thông thường.

Tiện ích mở rộng Stagefright để hỗ trợ Dolby Vision

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

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

Chi tiết triển khai dành riêng cho công nghệ

Đường dẫn giải mã HDR10

Hình 1. Quy trình HDR10

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

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

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 hỗ trợ cho chỉ mục: ' OMX.google.android.index.describeHDRColorInfo '
  3. Triển khai hỗ trợ cho chỉ mục: ' OMX.google.android.index.describeColorAspects '
  4. Triển khai hỗ trợ phân tích cú pháp SEI của siêu dữ liệu làm chủ.

Đường dẫn giải mã Dolby Vision

Hình 2. Quy trình Dolby Vision

Dòng bit Dolby được đóng gói trong các thùng chứa MP4 theo định nghĩa của Dolby. Về lý thuyết, các ứng dụng có thể sử dụng 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 một cách độc lập; tuy nhiên, điều này không phù hợp với mô hình Android MediaExtractor/MediaCodec hiện tại.

  • DolbyExtractor:
    • Dòng bit Dolby được DolbyExtractor nhận dạng, hiển thị các lớp khác nhau dưới dạng 1 đến 2 bản nhạc cho mỗi bản nhạc (nhóm) video dolby:
      • Bản nhạc HDR có loại "video/dolby-vision" dành cho luồng dolby 2/3 lớp kết hợp. Định dạng đơn vị truy cập của rãnh HDR xác định cách đóng gói các đơ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 để giải mã thành một khung HDR duy nhất, sẽ do Dolby xác định.
      • (Tùy chọn, chỉ khi BL tương thích ngược) Rãnh BL chỉ chứa lớp cơ sở, lớp này phải được 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 các đơn vị truy cập AVC/HEVC thường xuyên cho rãnh này. Bản nhạc BL này phải có cùng track-unique-ID ("track-ID") với bản nhạc Dolby để ứng dụng hiểu rằng đây là hai mã hóa của cùng một video.
    • Ứng dụng có thể quyết định chọn bản nhạc nào dựa trên khả năng của nền tảng.
    • Vì bản nhạc HDR có loại HDR cụ thể nên hệ thống sẽ chọn bộ giải mã video Dolby để giải mã bản nhạc đó. Bản nhạc BL sẽ được giải mã bằng bộ giải mã video AVC/HEVC thông thường.
  • Bộ giải mã Dolby:
    • Bộ giải mã Dolby nhận các đơn vị truy cập chứa các đơn vị truy cập được yêu cầu cho tất cả các lớp (EL+BL+MD hoặc BL+MD)
    • Thông tin CSD (dữ liệu cụ thể về codec, chẳng hạn như SPS+PPS+VPS) cho từng lớp có thể được đóng gói thành 1 khung CSD để Dolby xác định. Cần có một khung CSD duy nhất.

Hành động Dolby

  1. Xác định cách đóng gói các đơn vị truy cập cho các sơ đồ bộ chứa Dolby khác nhau (ví dụ: BL+EL+MD) cho bộ giải mã Dolby trừu tượng (tức là định dạng bộ đệm mà bộ giải mã HDR mong đợi).
  2. Xác định 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. Điều này cũng có thể được thực hiện bởi Dolby.
  2. Tích hợp DolbyExtractor vào khung. Điểm vào là frameworks/av/media/libstagefright/MediaExtractor.cpp .
  3. Khai báo profile bộ giải mã HDR và ​​loại OMX cấp độ. Ví dụ: OMX_VIDEO_DOLBYPROFILETYPEOMX_VIDEO_DOLBYLEVELTYP .
  4. Triển khai hỗ trợ cho chỉ mục: 'OMX.google.android.index.describeColorAspects '
  5. Truyền siêu dữ liệu HDR động tới ứng dụng và bề mặt trong mỗi khung hình. Thông thường, thông tin này phải được đóng gói vào khung được giải mã theo định nghĩa của Dolby, vì tiêu chuẩn HDMI không cung cấp cách truyền thông tin này đến màn hình.

Đường dẫn giải mã VP9

Hình 3. Đường ống VP9-PQ

Dòng bit VP9 được đóng gói trong các thùng chứa WebM theo cách do nhóm WebM xác định. 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ừ dòng bit trước khi gửi khung tới bộ giải mã.

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

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

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