Ekspor statistik penyandian video

Dimulai dengan Android 13, klien aplikasi dapat meminta pembuat enkode video untuk mengekspor statistik pengkodean untuk setiap frame video yang dikodekan. Dengan statistik yang diperoleh dari pembuat enkode video, aplikasi dapat mengoptimalkan tugas pengkodean videonya seperti pengkodean multipass dan prapemrosesan bingkai sebelum pengkodean.

Untuk mengekspor statistik pengkodean video, vendor SoC harus mengubah driver encoder video seperti yang dijelaskan dalam Pembaruan driver encoder video .

Data statistik pengkodean video

Dengan Android 13, encoder video mengekspor data statistik seperti yang ditunjukkan pada tabel berikut.

Nama statistik pembuat enkode Keterangan
Rata-rata blok QP per frame Rata-rata semua blok QP dalam bingkai video yang dikodekan ke dalam bitstream
Jenis gambar Tipe I atau P atau B

Pengembang dapat mengambil informasi statistik untuk setiap frame dengan menggunakan kelas pengembang MediaFormat .

Pembaruan pada driver encoder video

Untuk mendukung ekspor statistik pengkodean video, vendor SoC harus mengubah driver encoder video. Kunci berikut ditambahkan di basis Codec 2.0 di Android 13:

  • KEY_VIDEO_QP_AVERAGE menjelaskan QP blok rata-rata per frame.

    Aturan berikut berlaku untuk penerapan kunci KEY_VIDEO_QP_AVERAGE :

    • Encoder SoC harus membulatkan rata-rata blok QP ke bilangan bulat terdekat sebelum memancarkan ke Codec 2.0.

    • Nilai rata-rata dihitung hanya dari bidang luma.

    • Encoder SoC harus mengembalikan INT_MAX jika semua blok dalam frame saat ini berada dalam mode dilewati. Kondisi ini terjadi ketika tidak ada koefisien yang dikodekan dan tidak ada info QP signifikan yang dikodekan dalam frame.

  • KEY_PICTURE_TYPE menjelaskan tipe gambar dari bingkai yang dikodekan sebagai PICTURE_TYPE_I , PICTURE_TYPE_P , PICTURE_TYPE_B , atau PICTURE_TYPE_UNKNOWN .

  • KEY_VIDEO_ENCODING_STATISTICS_LEVEL menjelaskan tingkat informasi statistik pengkodean yang dipancarkan dari encoder video, sebagai berikut:

Lihat VideoEncodingStatisticsTest untuk implementasi referensi.

Validasi

Jalankan pengujian CTS VideoEncodingStatisticsTest untuk memvalidasi bahwa bagian QP rata-rata dari statistik pengkodean video berfungsi dengan benar: CTS menjalankan dua pengkodean video input yang sama, satu dengan bitrate lebih tinggi, dan satu lagi dengan bitrate lebih rendah. CTS kemudian membandingkan dua nilai QP rata-rata yang diekspor dari dua pengkodean. Jika rata-rata QP dari pengkodean dengan bitrate lebih rendah lebih tinggi dari rata-rata QP dari pengkodean dengan bitrate lebih tinggi, CTS lolos.

Untuk memvalidasi penonaktifan fitur ekspor statistik pengkodean video saat diaktifkan, gunakan kunci VIDEO_ENCODING_STATISTICS_LEVEL_NONE sebagai berikut:

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