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 Khung Chất lượng nội dung nghe nhìn

  • Trình quản lý chất lượng nội dung nghe nhìn (API SDK): API SDK hướng đến ứng dụng cho phép ứ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à giao tiếp với HAL.
  • Cơ sở dữ liệu chất lượng nội dung nghe nhìn: Một cơ sở dữ liệu SQLite lưu trữ tất 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 tiêu chuẩn được dùng để giao tiếp giữa ứ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ẽ 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 để có trải nghiệm tuỳ chỉnh.
  • Hồ sơ mặc định: Ứ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: Một 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ự lệnh gọi cho các thao tác chất lượng nội dung nghe nhìn phổ biế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 quyền cho một ứng dụng đa phương tiện tạo hồ sơ.
  2. Ứng dụng đa phương tiện đăng ký 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 đối tượng PictureProfile.
  4. MediaQualityService 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 về việc thành công hay thất bại thông qua lệnh gọi lại đã đăng ký (onPictureProfileAdded() hoặc onError()).

Đặt hồ sơ hình ảnh cho mỗi luồng

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 trong quá trình phát.

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

Hình 3. Sơ đồ trình tự để đặt 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ơ hình ảnh hiện có.
  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 cho HAL Chất lượng nội dung nghe nhìn (MQ), truyền mã nhận dạng hồ sơ và các tham số của hồ sơ.
  4. Cuối cùng, HAL MQ sẽ gửi các tham số này đến HAL Composer, hiển thị 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, đóng vai trò là hồ sơ dự phòng cho mọi nội dung không đượ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ơ hình ảnh hiện có từ khung.
  2. Sau đó, ứng dụng 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 gửi các tham số của hồ sơ đó đến HAL Chất lượng nội dung nghe nhìn, sau đó áp dụng các thay đổi.

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

API SDK chất lượng nội dung nghe nhìn cung cấp các công cụ cần thiết để ứng dụng tương tác với khung. Đ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ộ tham số hình ảnh hoàn chỉnh cho một chế độ cụ thể.
SoundProfile Một lớp dữ liệu cho các tham 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 thức chính bao gồm:

Phương thức Mô tả
createPictureProfile(PictureProfile profile) Tạo hồ sơ hình ảnh mới. Yêu cầu 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 hồ sơ hình ảnh hiện có. Chỉ có thể được gọi bởi người tạo hồ sơ.
removePictureProfile(String profileId) Xoá hồ sơ. Chỉ có thể được gọi bởi người tạo hồ sơ.
getAvailablePictureProfiles() Trả về danh sách tất cả các hồ sơ hình ảnh hiện có.
setDefaultPictureProfile(String profileId) Đặt hồ sơ hình ảnh mặc định chung. Yêu cầu quyền MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE.
registerPictureProfileCallback(PictureProfileCallback cb) Đăng ký lệnh gọi lại để theo dõi các thay đổi đối với 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

HAL chất lượng nội dung nghe nhìn 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 điều chỉnh về 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 tích cú pháp AIDL. Điều này bao gồm việc nhận các thay đổi đối với hồ sơ 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 để đặt trình nghe và khám phá các khả 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 Composer) 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 sử 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, ví dụ: khi người dùng thay đổi một chế độ cài đặt trực tiếp thông qua một điều khiển từ xa phần cứng.
PictureParameter.aidl Một liên hợp AIDL xác định tất cả các tham số hình ảnh tiêu chuẩn, chẳng hạn như độ tương phản và độ sắc nét có thể điều chỉnh.
PictureProfile.aidl Đối tượng có thể phân tích cú pháp AIDL đại diện cho đối tượng PictureProfile ở lớp HAL, chứa mã nhận dạng hồ sơ và các tham số được 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 sử 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.