Kể từ Android 13, các ứ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 hình video được 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, chẳng hạn như mã hoá nhiều lượt và tiền xử lý khung hình trước khi mã hoá.
Để xuất số liệu thống kê về việc mã hoá video, nhà cung cấp SoC phải thay đổi trình điều khiển bộ mã hoá video như mô tả trong phần Nội dung cập nhật cho trình điều khiển bộ mã hoá video.
Dữ liệu thống kê về việc mã hoá video
Với Android 13, bộ mã hoá video sẽ xuất dữ liệu thống kê như trong bảng sau.
Tên của số liệu thống kê về bộ mã hoá | Mô tả |
---|---|
Số lượng 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 hình video được mã hoá thành luồng bit |
Loại hình ảnh | Nhập 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 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ề việc mã hoá video, các 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 trung bình theo khối 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 giá trị trung bình của QP khối đến số nguyên gần nhất trước khi phát ra Bộ mã hoá và giải mã 2.0.
Giá trị trung bình chỉ được tính từ một mặt phẳng độ chói.
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 đều ở 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 hình.
KEY_PICTURE_TYPE
mô tả loại hình ảnh của khung được mã hoá dưới dạngPICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
hoặcPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
mô tả mức thông tin thống kê về hoạt động mã hoá do bộ mã hoá video phát ra, như sau:Khi bộ mã hoá không tạo ra thông tin nào về số liệu thống kê mã hoá, khoá này sẽ được đặt thành
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Khi bộ mã hoá tạo
KEY_VIDEO_QP_AVERAGE
vàKEY_PICTURE_TYPE
cho mỗi khung hình, khoá này được đặt thànhVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Hãy xem VideoEncodingStatisticsTest
để biết thông tin về cách triển khai tham chiếu.
Xác nhận kết quả
Chạy kiểm thử CTS VideoEncodingStatisticsTest
để xác thực rằng phần QP trung bình trong số liệu thống kê mã hoá video hoạt động chính xác: CTS chạy 2 quy trình mã hoá của cùng một video đầu vào, một quy trình có tốc độ bit cao hơn và một quy trình có tốc độ bit thấp hơn. Sau đó, CTS sẽ so sánh 2 giá trị QP trung bình đã xuất từ 2 phương thức mã hoá. Nếu QP trung bình từ quá trình mã hoá có tốc độ bit thấp hơn cao hơn QP trung bình từ 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 được 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);