ตั้งแต่ 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 ของบล็อกเป็นจำนวนเต็มใกล้ที่สุดก่อนส่งไปยังตัวแปลงรหัส 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 ค่าจากการเข้ารหัส 2 รายการ หาก QP เฉลี่ยจากการเข้ารหัสที่มีอัตราบิตต่ำสูงกว่า QP เฉลี่ยจากการเข้ารหัสที่มีอัตราบิตสูง CTS จะผ่าน
หากต้องการตรวจสอบการปิดฟีเจอร์การส่งออกสถิติการเข้ารหัสวิดีโอเมื่อเปิดใช้ ให้ใช้คีย์ VIDEO_ENCODING_STATISTICS_LEVEL_NONE
ดังนี้
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);