หน้านี้ระบุข้อกำหนดพื้นฐานสำหรับตัวแปลงรหัสวิดีโอของไคลเอ็นต์ Google Meet Media API เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดี
ข้อกำหนดด้านฟังก์ชันการทำงาน
ส่วนนี้จะระบุข้อกำหนดสำหรับประเภทและฟีเจอร์ของตัวแปลงรหัส
| ฟีเจอร์ | ข้อกำหนด | ||
|---|---|---|---|
| โปรไฟล์ | AV1 | VP9 | VP8 |
Main |
Profile 0 |
ไม่มี | |
| ความสามารถในการปรับขนาด | ดีโคดเดอร์ต้องรองรับการปรับขนาดชั่วคราว การปรับขนาดเชิงพื้นที่ หรือทั้ง 2 อย่าง หากข้อกำหนดการเข้ารหัสสำหรับประเภทและโปรไฟล์ของตัวแปลงรหัสที่ระบุจำเป็นต้องใช้ | ||
| รูปแบบวิดีโอดิบ |
ตัวแปลงรหัสต้องประมวลผลความละเอียดที่เป็นเลขคี่ได้ (เช่น เมื่อความกว้างหรือความสูงของเฟรมไม่ใช่ เลขคู่ เช่น 133 × 141) สำหรับรูปแบบโครมาที่ผ่านการสุ่มตัวอย่างย่อย จำนวนตัวอย่างโครมา ต่อมิติข้อมูลจะต้องปัดขึ้นเมื่อได้มาจากจำนวนตัวอย่างลูมา ไม่อนุญาตให้ครอบตัด เพิ่มขอบ หรือปรับขนาด ความละเอียดของเฟรมเอาต์พุตต้องตรงกับ ความละเอียดของเฟรมอินพุต |
||
ข้อกำหนดด้านการปฏิบัติงาน
ส่วนนี้จะระบุข้อกำหนดสำหรับเงื่อนไขต่างๆ ที่คาดว่าตัวแปลงรหัสวิดีโอจะทำงาน การละเมิดข้อกำหนดเหล่านี้อาจจำกัดการใช้งาน โคเดกเฉพาะในบางสถานการณ์ แต่ไม่ได้ป้องกันไม่ให้มีการใช้งาน เสมอไป เช่น หากจำนวนสูงสุดของอินสแตนซ์ตัวแปลงรหัสต่ำกว่าที่ กำหนด คุณจะยังคงใช้ตัวแปลงรหัสร่วมกับตัวแปลงรหัสประเภทอื่นๆ หรือ การติดตั้งใช้งานอื่นๆ ได้
| พารามิเตอร์ | ข้อกำหนด | |||
|---|---|---|---|---|
| ความละเอียดขั้นต่ำ (พิกเซล) | ≤ 128 × 128 | |||
| ความละเอียดสูงสุด หน่วยเป็นพิกเซล | ≥ 2880 × 1800 | |||
| อัตราเฟรมขั้นต่ำ, FPS | ≤ 1 | |||
| อัตราเฟรมสูงสุด, FPS | ≥ 30 | |||
| อัตราบิตขั้นต่ำ (kbps) | ≤ 30 | |||
| อัตราบิตสูงสุด (kbps) | ≥ 5000 | |||
| อินสแตนซ์ของตัวถอดรหัสสูงสุด | ≥ 3 | |||
| อัตราการส่งข้อมูลการถอดรหัสทั้งหมดสูงสุด หน่วยเป็นพิกเซลต่อวินาที | ≥ 3 × 2880 × 1880 × 30 | |||
ข้อกำหนดด้านประสิทธิภาพ
ส่วนนี้จะระบุข้อกำหนดเกี่ยวกับประสิทธิภาพของตัวแปลงรหัส การละเมิดข้อกำหนดเหล่านี้อาจส่งผลกระทบต่อประสบการณ์ของผู้ใช้อย่างมาก และจะบล็อกการใช้ตัวแปลงรหัสอย่างแน่นอน
| พารามิเตอร์ | ข้อกำหนด |
|---|---|
| เวลาในการประมวลผลระหว่างเฟรมสูงสุด (วินาที) | ≤ 1 / max(30, encode_target_frame_rate_fps) |
| เวลาประมวลผลคีย์เฟรมสูงสุด (วินาที) | ≤ 2 / max(30, encode_target_frame_rate_fps) |
เวลาในการประมวลผลเฟรมคือความแตกต่างของเวลาระหว่างเหตุการณ์ 2 อย่าง ได้แก่ 1) โคเดก ส่งเฟรม และ 2) โคเดกรับเฟรม ระบบจะคำนวณเวลาประมวลผลเฟรมโดยเฉลี่ย ในช่วงเวลาที่เลื่อนไปเรื่อยๆ ซึ่งมีความยาวอย่างน้อย 10 วินาที และมีเฟรมอย่างน้อย 10 เฟรม เวลาในการประมวลผลเฟรมสูงสุดคือค่าสูงสุด ในค่าเวลาในการประมวลผลเฟรมแต่ละค่า
ระบบจะคำนวณปริมาณงานเป็นจำนวนเฟรมที่ประมวลผลแล้ว ซึ่งรวมถึงเฟรมที่ถูกทิ้ง หารด้วยเดลต้าเวลาของเหตุการณ์ 2 เหตุการณ์ ได้แก่ 1) โคเดกส่งเฟรมสุดท้าย และ 2) โคเดกส่งเฟรมแรก
กรณีทดสอบ
กรณีทดสอบที่คุณใช้ได้มีดังนี้
| การทดสอบ | |
|---|---|
| อัตราการส่งข้อมูลของการถอดรหัส | ถอดรหัสสตรีมขนาด 2880 × 1880 × 30 ได้สูงสุด 3 รายการพร้อมกัน และตรวจสอบว่าตัวถอดรหัสไม่ ละเมิดข้อกำหนดด้านประสิทธิภาพ |
| การปฏิบัติตามข้อกำหนดของตัวถอดรหัส |
ถอดรหัสชุดบิตสตรีมที่เข้ารหัสล่วงหน้า เอาต์พุตของตัวถอดรหัสทดสอบต้องตรงกับเอาต์พุต
ของตัวถอดรหัสอ้างอิง (libvpx สำหรับ VP8 และ VP9, libaom สำหรับ AV1)
|
| ความสามารถในการปรับขนาดชั่วคราว | ถอดรหัสวิดีโอที่มีเลเยอร์ชั่วคราวหลายเลเยอร์ (2 และ 3) เอาต์พุตของตัวถอดรหัสทดสอบต้อง ตรงกับเอาต์พุตของตัวถอดรหัสอ้างอิง |
| ความสามารถในการปรับขนาดเชิงพื้นที่ | ถอดรหัสวิดีโอที่มีเลเยอร์เชิงพื้นที่หลายเลเยอร์ (2 และ 3) เอาต์พุตของตัวถอดรหัสทดสอบต้องตรงกับ เอาต์พุตของตัวถอดรหัสอ้างอิง |