ส่งออกสถิติการเข้ารหัสวิดีโอ

สำหรับ Android 13 เป็นต้นไป ไคลเอ็นต์ของแอปจะสามารถขอ โปรแกรมเปลี่ยนไฟล์วิดีโอเพื่อส่งออกสถิติการเข้ารหัสสำหรับเฟรมวิดีโอที่เข้ารหัสแต่ละเฟรม ด้วย สถิติที่ได้รับจากโปรแกรมเปลี่ยนไฟล์วิดีโอ แอปจะเพิ่มประสิทธิภาพวิดีโอ งานการเข้ารหัส เช่น การเข้ารหัสแบบมัลติพาสและการประมวลผลเฟรมล่วงหน้าก่อน การเข้ารหัส

ผู้ให้บริการ SoC ต้องเปลี่ยนโปรแกรมเปลี่ยนไฟล์วิดีโอเพื่อส่งออกสถิติการเข้ารหัสวิดีโอ ตามที่อธิบายไว้ในการอัปเดตไดรเวอร์โปรแกรมเปลี่ยนไฟล์วิดีโอ

ข้อมูลสถิติการเข้ารหัสวิดีโอ

ใน Android 13 โปรแกรมเปลี่ยนไฟล์วิดีโอจะส่งออกสถิติ ตามที่แสดงในตารางต่อไปนี้

ชื่อสถิติโปรแกรมเปลี่ยนไฟล์ คำอธิบาย
QP บล็อกโดยเฉลี่ยต่อเฟรม ค่าเฉลี่ยของ QP บล็อกทั้งหมดในเฟรมวิดีโอที่เข้ารหัสเป็นบิตสตรีม
ประเภทรูปภาพ พิมพ์ I หรือ P หรือ B

นักพัฒนาซอฟต์แวร์สามารถเรียกดูข้อมูลสถิติสำหรับแต่ละเฟรมโดยใช้ MediaFormat ระดับนักพัฒนาซอฟต์แวร์

การอัปเดตไดรเวอร์โปรแกรมเปลี่ยนไฟล์วิดีโอ

ในการสนับสนุนการส่งออกสถิติการเข้ารหัสวิดีโอ ผู้ให้บริการ SoC ต้องเปลี่ยน ไดรเวอร์โปรแกรมเปลี่ยนไฟล์วิดีโอ เพิ่มคีย์ต่อไปนี้ในฐานของตัวแปลงรหัส 2.0 ใน Android 13

  • KEY_VIDEO_QP_AVERAGE อธิบายต่อเฟรม QP ในการบล็อกโดยเฉลี่ย

    กฎต่อไปนี้มีผลกับการใช้งาน KEY_VIDEO_QP_AVERAGE คีย์:

    • โปรแกรมเปลี่ยนไฟล์ SoC ต้องปัดเศษค่าเฉลี่ยของ QP แบบบล็อกให้ใกล้เคียงที่สุด จำนวนเต็มก่อนส่งไปยังตัวแปลงรหัส 2.0

    • ค่าเฉลี่ยจะคำนวณจากระนาบ Luma เท่านั้น

    • โปรแกรมเปลี่ยนไฟล์ 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 รายการสำหรับวิดีโออินพุตเดียวกัน โดยรายการหนึ่งมี อัตราบิตอีก 1 รายการมีอัตราบิตต่ำกว่า จากนั้น 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);