ตั้งแต่ Android 13 เป็นต้นไป ไคลเอ็นต์แอปจะขอให้ ตัวเข้ารหัสวิดีโอส่งออกสถิติการเข้ารหัสสำหรับแต่ละเฟรมวิดีโอที่เข้ารหัสได้ แอปสามารถเพิ่มประสิทธิภาพงานการเข้ารหัสวิดีโอ เช่น การเข้ารหัสแบบหลายรอบและการประมวลผลเฟรมล่วงหน้าก่อนการเข้ารหัส โดยใช้สถิติที่ได้จากตัวเข้ารหัสวิดีโอ
หากต้องการส่งออกสถิติการเข้ารหัสวิดีโอ ผู้ให้บริการ SoC ต้องเปลี่ยนไดรเวอร์ตัวเข้ารหัสวิดีโอ ตามที่อธิบายไว้ในการอัปเดตไดรเวอร์ตัวเข้ารหัสวิดีโอ
ข้อมูลสถิติการเข้ารหัสวิดีโอ
ใน Android 13 ตัวเข้ารหัสวิดีโอจะส่งออกข้อมูลสถิติ ตามที่แสดงในตารางต่อไปนี้
ชื่อสถิติของตัวเข้ารหัส | คำอธิบาย |
---|---|
QP บล็อกเฉลี่ยต่อเฟรม | ค่าเฉลี่ยของ QP บล็อกทั้งหมดในเฟรมวิดีโอที่เข้ารหัสเป็นสตรีมบิต |
ประเภทรูปภาพ | พิมพ์ I หรือ P หรือ B |
นักพัฒนาแอปสามารถดึงข้อมูลสถิติของแต่ละเฟรมได้โดยใช้คลาส
MediaFormat
สำหรับนักพัฒนาแอป
การอัปเดตไดรเวอร์ตัวเข้ารหัสวิดีโอ
หากต้องการรองรับการส่งออกสถิติการเข้ารหัสวิดีโอ ผู้จำหน่าย SoC ต้องเปลี่ยน ไดรเวอร์ตัวเข้ารหัสวิดีโอ ระบบจะเพิ่มคีย์ต่อไปนี้ในฐาน Codec 2.0 ใน Android 13
KEY_VIDEO_QP_AVERAGE
อธิบาย QP ของบล็อกเฉลี่ยต่อเฟรมกฎต่อไปนี้จะมีผลกับการใช้งานคีย์
KEY_VIDEO_QP_AVERAGE
ตัวเข้ารหัส SoC ต้องปัดเศษค่าเฉลี่ยของ QP บล็อกเป็นจำนวนเต็มที่ใกล้ที่สุดก่อนที่จะส่งไปยัง Codec 2.0
ระบบจะคำนวณค่าเฉลี่ยจากระนาบความสว่างเท่านั้น
ตัวเข้ารหัส SoC ต้องแสดง
INT_MAX
หากบล็อกทั้งหมดในเฟรมปัจจุบันอยู่ในโหมดข้าม เงื่อนไขนี้เกิดขึ้นเมื่อไม่มีการเข้ารหัสสัมประสิทธิ์และไม่มีการเข้ารหัสข้อมูล QP ที่สำคัญในเฟรม
KEY_PICTURE_TYPE
อธิบายประเภทรูปภาพของเฟรมที่เข้ารหัสเป็นPICTURE_TYPE_I
PICTURE_TYPE_P
PICTURE_TYPE_B
หรือPICTURE_TYPE_UNKNOWN
KEY_VIDEO_ENCODING_STATISTICS_LEVEL
อธิบายระดับของ ข้อมูลสถิติการเข้ารหัสที่ปล่อยออกมาจากตัวเข้ารหัสวิดีโอ ดังนี้เมื่อตัวเข้ารหัสไม่สร้างข้อมูลเกี่ยวกับสถิติการเข้ารหัส ระบบจะตั้งค่าคีย์นี้เป็น
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
เมื่อตัวเข้ารหัสสร้าง
KEY_VIDEO_QP_AVERAGE
และKEY_PICTURE_TYPE
สำหรับแต่ละเฟรม ระบบจะตั้งค่าคีย์นี้เป็นVIDEO_ENCODING_STATISTICS_LEVEL_1
ดูการติดตั้งใช้งานอ้างอิงได้ที่ VideoEncodingStatisticsTest
การตรวจสอบความถูกต้อง
เรียกใช้การทดสอบ VideoEncodingStatisticsTest
CTS เพื่อตรวจสอบว่าส่วน QP เฉลี่ยของสถิติการเข้ารหัสวิดีโอ
ทำงานได้อย่างถูกต้อง โดย CTS จะเรียกใช้การเข้ารหัส 2 รายการของวิดีโออินพุตเดียวกัน รายการหนึ่งมี
อัตราบิตสูงกว่า และอีกรายการหนึ่งมีอัตราบิตต่ำกว่า จากนั้น CTS จะเปรียบเทียบค่า QP เฉลี่ยที่ส่งออกจาก 2 การเข้ารหัส
หาก QP เฉลี่ยจากการเข้ารหัสที่มีบิตเรตต่ำกว่าสูงกว่า QP เฉลี่ยจากการเข้ารหัสที่มีบิตเรตสูงกว่า CTS จะผ่าน
หากต้องการตรวจสอบการปิดฟีเจอร์สถิติการเข้ารหัสวิดีโอที่ส่งออกเมื่อเปิดใช้ ให้ใช้คีย์ VIDEO_ENCODING_STATISTICS_LEVEL_NONE
ดังนี้
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);