Xuất số liệu thống kê mã hoá video

Kể từ Android 13, các ứng dụng của ứng dụng có thể yêu cầu bộ mã hoá video xuất số liệu thống kê mã hoá cho từng khung video đã mã hoá. Với số liệu thống kê thu được từ bộ mã hoá video, các ứng dụng có thể tối ưu hoá các tác vụ mã hoá video của mình, chẳng hạn như mã hoá nhiều lần và xử lý trước khung hình trước khi mã hoá.

Để xuất số liệu thống kê mã hoá video, các nhà cung cấp hệ thống SoC phải thay đổi trình điều khiển bộ mã hoá video như mô tả trong bài viết Thông tin cập nhật về trình điều khiển bộ mã hoá video.

Dữ liệu thống kê về quá trình mã hoá video

Với Android 13, bộ mã hoá video sẽ xuất dữ liệu thống kê như minh hoạ trong bảng sau.

Tên của số liệu thống kê về bộ mã hoá Mô tả
QP khối trung bình trên mỗi khung hình Giá trị trung bình của tất cả QP khối trong khung video được mã hoá thành luồng bit
Loại hình ảnh Loại I, P hoặc B

Nhà phát triển có thể truy xuất thông tin thống kê cho từng khung hình bằng cách sử dụng lớp dành cho nhà phát triển MediaFormat.

Nội dung cập nhật đối với trình điều khiển bộ mã hoá video

Để hỗ trợ xuất số liệu thống kê về quá trình mã hoá video, nhà cung cấp SoC phải thay đổi trình điều khiển bộ mã hoá video. Các khoá sau được thêm vào cơ sở Codec 2.0 trong Android 13:

  • KEY_VIDEO_QP_AVERAGE mô tả QP khối trung bình trên mỗi khung hình.

    Các quy tắc sau áp dụng cho việc triển khai khoá KEY_VIDEO_QP_AVERAGE:

    • Bộ mã hoá SoC phải làm tròn trung bình của các QP khối đến số nguyên gần nhất trước khi phát sang Codec 2.0.

    • Giá trị trung bình chỉ được tính toán từ một mặt phẳng luma.

    • Bộ mã hoá SoC phải trả về INT_MAX nếu tất cả các khối trong khung hình hiện tại đang ở chế độ bỏ qua. Điều kiện này xảy ra khi không có hệ số nào được mã hoá và không có thông tin QP quan trọng nào được mã hoá trong khung.

  • KEY_PICTURE_TYPE mô tả loại hình ảnh của khung được mã hoá là PICTURE_TYPE_I, PICTURE_TYPE_P, PICTURE_TYPE_B hoặc PICTURE_TYPE_UNKNOWN.

  • KEY_VIDEO_ENCODING_STATISTICS_LEVEL mô tả mức độ thông tin thống kê về quá trình mã hoá phát ra từ bộ mã hoá video, như sau:

Hãy xem VideoEncodingStatisticsTest để biết cách triển khai tham chiếu.

Xác nhận kết quả

Chạy quy trình kiểm thử CTS VideoEncodingStatisticsTest để xác thực rằng phần QP trung bình của số liệu thống kê về quá trình mã hoá video hoạt động chính xác: CTS chạy hai quá trình mã hoá của cùng một video đầu vào, một video có tốc độ bit cao hơn và một video có tốc độ bit thấp hơn. Sau đó, CTS sẽ so sánh hai giá trị QP trung bình đã xuất từ hai kiểu mã hoá. Nếu QP trung bình của quá trình mã hoá có tốc độ bit thấp hơn cao hơn QP trung bình của quá trình mã hoá có tốc độ bit cao hơn, thì CTS sẽ vượt qua.

Để xác thực việc tắt tính năng xuất số liệu thống kê về việc mã hoá video khi bật, hãy sử dụng khoá VIDEO_ENCODING_STATISTICS_LEVEL_NONE như sau:

format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);