ใน MPEG มีกระบวนการที่ภาพแตกออกเป็น macroblocks และเวกเตอร์การเคลื่อนไหวถูกคำนวณสำหรับแต่ละบล็อกแมโครเหล่านั้น จากนั้นคุณส่งเวกเตอร์เหล่านี้พร้อมกับข้อผิดพลาดในการคาดการณ์เพื่อสร้างภาพถัดไปในลำดับวิดีโอ
ฉันกำลังพยายามที่จะเข้าใจวิธีการทำงานนี้ macroblock แต่ละตัวมีเวกเตอร์แบบเคลื่อนไหวที่เกี่ยวข้องซึ่งถ้า (เวกเตอร์คือ [1,0]) กล่าวว่าall the pixels in this block move 1 in the x direction and 0 in the y direction for the next frame.
หากเวกเตอร์การเคลื่อนไหวทั้งหมดไม่ได้จัดแนวอย่างถูกต้องสิ่งนี้จะไม่ทำให้พื้นที่ของภาพที่ไม่มีการนับ (เช่นพื้นที่ที่ macroblock นั้นเริ่มแรก)?
ตัวอย่างเช่นฉันมีคำถามต่อไปนี้ที่ฉันพบ
พิจารณาภาพต่อไปนี้ในเวลา t:
7 7 7 7
7 7 5 5
7 5 5 8
8 8 8 8
9 9 9 9
9 9 9 9
ภาพนี้แบ่งออกเป็น macroblocks 2x2 และส่งเวกเตอร์เคลื่อนไหวต่อไปนี้เพื่อสร้างใหม่:
(0,0) (0,0) (0,1) (-1,1) (0,0) (0,0)
ภาพในขั้นตอนก่อนหน้านี้ t - 1 ดูเหมือนว่า:
7 7 7 7
7 7 5 4
7 7 7 7
7 5 8 8
8 9 8 9
9 9 9 9
ข้อผิดพลาดที่ส่งคืออะไร?
คุณจะแก้ปัญหานี้อย่างไร