Khung Chất lượng nội dung nghe nhìn

Khung Chất lượng nội dung nghe nhìn sẽ được giới thiệu trong Android 16 cho Android TV với mục tiêu thiết lập một API tiêu chuẩn để điều chỉnh Chất lượng hình ảnh (PQ) và Chất lượng âm thanh (AQ). Mục tiêu chính là cung cấp một cách điều chỉnh thống nhất về hình ảnh và âm thanh trên nhiều thiết bị Android TV. Khung tiêu chuẩn này nhằm mục đích đơn giản hoá quá trình phát triển cho nhà phát triển ứng dụng, nhà sản xuất thiết bị gốc (OEM) và nhà cung cấp hệ thống trên một chip (SoC) bằng cách cung cấp một bộ API Android nhất quán. Cụ thể đối với các nhà cung cấp SoC, bộ API cho phép khung Android xử lý cấu hình PQ và AQ, giảm chi phí cộng tác với nhiều nhà phát triển ứng dụng.

Cuối cùng, đối với nền tảng Google và Android, khung tiêu chuẩn này giúp giảm sự phân mảnh, cải thiện chất lượng và khả năng mở rộng, cung cấp các tính năng mới và đặt nền tảng cho một giao diện người dùng AQ/PQ hợp nhất cũng như cải thiện trải nghiệm người dùng.

Khung Chất lượng nội dung nghe nhìn hỗ trợ nhiều trường hợp sử dụng để nâng cao trải nghiệm xem truyền hình. Điểm đáng chú ý là khả năng quản lý hồ sơ và chế độ cài đặt theo tên gói (ứng dụng) và theo mã nhận dạng đầu vào. Ngoài ra, các ứng dụng hệ thống hoặc các ứng dụng khác có trong danh sách cho phép có thể tạo hồ sơ. Chỉ chủ sở hữu hồ sơ mới có thể cập nhật hoặc xoá hồ sơ. Cụ thể, khung này quản lý Hồ sơ hình ảnh và âm thanh. Ví dụ về các thông số hình ảnh bao gồm độ sáng, độ tương phản, độ sắc nét. Ví dụ về các thông số âm thanh bao gồm âm trầm và âm bổng. Bạn có thể áp dụng các hồ sơ này trong nhiều bối cảnh, bao gồm cả việc đặt hồ sơ mặc định chung, truyền phát trực tiếp hồ sơ qua MediaCodec, đặt hồ sơ mặc định của ứng dụng cho các ứng dụng nội dung nghe nhìn cụ thể và đặt hồ sơ hình ảnh đầu vào của TV cho các đầu vào cụ thể như HDMI. Khung này cũng hỗ trợ các thay đổi về trạng thái, cho phép sử dụng các bộ tham số khác nhau cho từng trạng thái như HDR, quản lý hồ sơ hình ảnh đang được áp dụng trong quá trình xử lý và xử lý các tính năng điều chỉnh ánh sáng nền theo môi trường.

Nhóm Android đang hợp tác với các đối tác trong hệ sinh thái của chúng tôi để hỗ trợ Khung Chất lượng nội dung nghe nhìn.

Thành phần

Khung Chất lượng nội dung nghe nhìn bao gồm một số thành phần chính hoạt động cùng nhau trên các lớp ứng dụng, khung và phần cứng.

Sơ đồ chuẩn hoá chất lượng hình ảnh và chất lượng âm thanh

Hình 1. Tương tác giữa các thành phần của Media Quality Framework

  • Trình quản lý chất lượng nội dung nghe nhìn (SDK API): SDK API hướng đến ứng dụng, cho phép các ứng dụng quản lý hồ sơ hình ảnh và âm thanh.
  • Dịch vụ chất lượng nội dung nghe nhìn: Một dịch vụ hệ thống chứa logic nghiệp vụ cốt lõi, quản lý hồ sơ, quyền và hoạt động giao tiếp với HAL.
  • Cơ sở dữ liệu chất lượng nội dung nghe nhìn: Cơ sở dữ liệu SQLite lưu trữ tất cả các hồ sơ hình ảnh và âm thanh.
  • Hợp đồng chất lượng nội dung nghe nhìn: Xác định các tham số và cấu trúc dữ liệu được chuẩn hoá dùng để giao tiếp giữa các ứng dụng và khung.
  • HAL chất lượng nội dung nghe nhìn: Lớp trừu tượng phần cứng mà nhà cung cấp SoC triển khai để truyền đạt các thay đổi về hồ sơ hình ảnh và âm thanh cho phần cứng cơ bản.

Tính năng

Khung Chất lượng nội dung nghe nhìn hỗ trợ nhiều tính năng để cung cấp một hệ thống linh hoạt và mạnh mẽ để quản lý chất lượng nội dung nghe nhìn.

Quản lý hồ sơ

  • Hồ sơ do ứng dụng quản lý: Ứng dụng có thể tạo, cập nhật và xoá hồ sơ của riêng mình để mang đến trải nghiệm phù hợp với từng cá nhân.
  • Hồ sơ mặc định: Các ứng dụng hệ thống có thể đặt hồ sơ mặc định cho các ứng dụng hoặc đầu vào TV cụ thể (ví dụ: HDMI 1).
  • Hồ sơ mặc định chung: Hồ sơ dự phòng trên toàn hệ thống được áp dụng khi không có hồ sơ cụ thể nào được đặt.

Quy trình tổng thể

Các sơ đồ sau đây minh hoạ trình tự gọi cho các thao tác thường gặp về chất lượng nội dung nghe nhìn.

Tạo và áp dụng hồ sơ hình ảnh

Tạo hồ sơ bằng hình ảnh

Hình 2. Sơ đồ trình tự để tạo hồ sơ hình ảnh

  1. Một ứng dụng hệ thống gọi setPictureProfileAllowList() để cấp cho ứng dụng đa phương tiện quyền tạo hồ sơ.
  2. Ứng dụng đa phương tiện đăng ký một PictureProfileCallback để nhận thông báo về các thay đổi đối với hồ sơ.
  3. Ứng dụng đa phương tiện gọi createPictureProfile() bằng một đối tượng PictureProfile.
  4. MediaQualityService sẽ xử lý yêu cầu, lưu hồ sơ vào cơ sở dữ liệu và thông báo cho ứng dụng biết trạng thái thành công hay thất bại thông qua lệnh gọi lại đã đăng ký (onPictureProfileAdded() hoặc onError()).

Thiết lập hồ sơ hình ảnh cho từng luồng phát

Quy trình này minh hoạ cách một ứng dụng có thể áp dụng một hồ sơ cụ thể cho nội dung video của ứng dụng trong quá trình phát.

Đặt hồ sơ hình ảnh cho luồng phát

Hình 3. Sơ đồ trình tự để thiết lập hồ sơ hình ảnh cho mỗi luồng

  1. Ứng dụng đa phương tiện truy vấn MediaQualityManager để lấy danh sách các hồ sơ ảnh có sẵn.
  2. Sau đó, ứng dụng sẽ dùng MediaCodec.setParameters để chọn và đặt hồ sơ mong muốn cho luồng.
  3. Khung này truyền đạt lựa chọn này đến HAL Chất lượng nội dung nghe nhìn (MQ), truyền mã nhận dạng hồ sơ và các thông số của hồ sơ.
  4. Cuối cùng, MQ HAL sẽ gửi các tham số này đến Composer HAL. Composer HAL sẽ kết xuất luồng video bằng hồ sơ hình ảnh đã chỉ định.

Đặt hồ sơ mặc định chung

Chỉ các ứng dụng hệ thống mới có thể đặt hồ sơ mặc định chung. Hồ sơ này đóng vai trò là phương án dự phòng cho mọi nội dung chưa được chỉ định một hồ sơ cụ thể.

  1. Ứng dụng hệ thống truy xuất danh sách các hồ sơ ảnh có sẵn từ khung.
  2. Sau đó, ứng dụng sẽ chọn một trong các hồ sơ này làm hồ sơ mặc định chung mới bằng cách gọi setDefaultPictureProfile(id).
  3. Khung này sẽ gửi các thông số của hồ sơ đó đến HAL Chất lượng nội dung nghe nhìn, sau đó HAL này sẽ áp dụng các thay đổi.

Media Quality SDK API

API Media Quality SDK cung cấp các công cụ cần thiết để ứng dụng tương tác với khung này. Điểm truy cập chính là gói android.media.quality.

android.media.quality

Gói này chứa các lớp chính để quản lý chất lượng nội dung nghe nhìn.

Lớp Mô tả
MediaQualityManager Lớp trung tâm để tương tác với MQF.
PictureProfile Một lớp dữ liệu đại diện cho một bộ thông số đầy đủ về hình ảnh cho một chế độ cụ thể.
SoundProfile Một lớp dữ liệu cho các thông số âm thanh.
MediaQualityContract Một lớp chứa các hằng số cho tất cả các khoá tham số được xác định trước.

MediaQualityManager

Các phương pháp chính bao gồm:

Phương thức Mô tả
createPictureProfile(PictureProfile profile) Tạo một hồ sơ hình ảnh mới. Yêu cầu cấp quyền đặc biệt hoặc ứng dụng phải có trong danh sách cho phép.
updatePictureProfile(PictureProfile profile) Cập nhật một hồ sơ hình ảnh hiện có. Chỉ người tạo hồ sơ mới có thể gọi.
removePictureProfile(String profileId) Xoá một hồ sơ. Chỉ người tạo hồ sơ mới có thể gọi.
getAvailablePictureProfiles() Trả về danh sách tất cả các chế độ cài đặt sẵn về hình ảnh hiện có.
setDefaultPictureProfile(String profileId) Đặt hồ sơ hình ảnh mặc định chung. Cần có quyền MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE.
registerPictureProfileCallback(PictureProfileCallback cb) Đăng ký một lệnh gọi lại để theo dõi các thay đổi về hồ sơ.

Đối tượng PictureProfile

Đối tượng PictureProfile đóng gói tất cả thông tin cho một chế độ hình ảnh nhất định.

public final class PictureProfile {
  private String id;
  private int type; // System or Application
  private String name; // e.g., "Movie", "Game"
  private String inputId; // e.g., "HDMI1"
  private String packageName; // e.g., "com.google.android.youtube"
  private PersistableBundle parameters; // Bundle containing all PQ parameters
}

HAL chất lượng nội dung nghe nhìn

Media Quality HAL là một giao diện dựa trên AIDL được xác định trong hardware/interfaces/tv/mediaquality/aidl/. Nhà cung cấp SoC phải triển khai giao diện này để bật Khung chất lượng nội dung nghe nhìn trên thiết bị của họ. HAL đóng vai trò là cầu nối giao tiếp giữa MediaQualityService trong khung Android và phần cứng cơ bản, chịu trách nhiệm áp dụng các chế độ điều chỉnh hình ảnh và âm thanh.

HAL quản lý hồ sơ hình ảnh và âm thanh bằng cách sử dụng các đối tượng có thể phân chia AIDL. Việc này bao gồm nhận các thay đổi về cấu hình từ khung và thông báo cho khung về mọi điều chỉnh được thực hiện ở cấp phần cứng.

Mô-đun

Giao diện HAL bao gồm một số tệp AIDL chính:

Tệp HAL Mô tả
IMediaQuality.aidl Giao diện chính cho dịch vụ Chất lượng nội dung nghe nhìn, dùng để thiết lập trình nghe và khám phá các chức năng của phần cứng.
IPictureProfileChangedListener.aidl Một giao diện trình nghe mà khung sử dụng để thông báo cho HAL (cụ thể là một thành phần như HAL trình kết hợp) về các thay đổi đối với hồ sơ hình ảnh.
IPictureProfileAdjustmentListener.aidl Một giao diện trình nghe mà HAL dùng để thông báo cho khung về các điều chỉnh được thực hiện ở cấp phần cứng, chẳng hạn như khi người dùng thay đổi một chế độ cài đặt trực tiếp thông qua điều khiển từ xa phần cứng.
PictureParameter.aidl Một liên kết AIDL xác định tất cả các thông số hình ảnh tiêu chuẩn (chẳng hạn như độ tương phản và độ sắc nét) mà bạn có thể điều chỉnh.
PictureProfile.aidl Gói AIDL có thể phân chia, đại diện cho một đối tượng PictureProfile ở lớp HAL, chứa mã nhận dạng hồ sơ và các tham số liên kết.
ISoundProfileChangedListener.aidl Một giao diện trình nghe mà khung sử dụng để thông báo cho HAL về các thay đổi đối với hồ sơ âm thanh.
ISoundProfileAdjustmentListener.aidl Một giao diện trình nghe mà HAL dùng để thông báo cho khung về các điều chỉnh âm thanh được thực hiện ở cấp phần cứng.