การบีบอัดเดลต้าเป็นการบีบอัดของค่าที่เข้ารหัสเดลต้า การเข้ารหัสเดลต้าเป็นการแปลงที่สร้างการกระจายทางสถิติของตัวเลขที่แตกต่าง หากการแจกแจงเป็นไปตามอัลกอริธึมการบีบอัดที่เลือกก็จะลดจำนวนข้อมูลลง มันทำงานได้ดีมากในระบบเช่นเกมที่เอนทิตีย้ายเพียงเล็กน้อยระหว่างการอัพเดตสองครั้ง
สมมติว่าคุณมี 100 เอนทิตีใน 2D บนกริดขนาดใหญ่ 512 x 512 พิจารณาเฉพาะจำนวนเต็มเพื่อประโยชน์เท่านั้น นั่นคือตัวเลขจำนวนเต็มสองตัวต่อหนึ่งเอนทิตีหรือ 200 หมายเลข
ระหว่างการอัปเดตสองครั้งตำแหน่งของเราทั้งหมดจะเปลี่ยนเป็น 0, 1, -1, 2 หรือ -2 มีอินสแตนซ์ของ 0, 33 อินสแตนซ์ของ 1 และ -1 และ 100 อินสแตนซ์เพียง 17 ของ 2 และ -2 นี่เป็นเรื่องธรรมดา เราเลือกการเข้ารหัส Huffman สำหรับการบีบอัด
ต้นไม้ Huffman สำหรับสิ่งนี้จะเป็น:
0 0
-1 100
1 101
2 110
-2 1110
0 ทั้งหมดของคุณจะถูกเข้ารหัสเป็นบิตเดียว นั่นเป็นเพียง 100 บิต 66 ค่าจะถูกเข้ารหัสเป็น 3 บิตและเพียง 34 ค่าเป็น 4 บิต นั่นคือ 434 บิตหรือ 55 ไบต์ บวกกับค่าใช้จ่ายเล็ก ๆ น้อย ๆ เพื่อบันทึกแผนผังการทำแผนที่ของเราเนื่องจากต้นไม้มีขนาดเล็ก โปรดทราบว่าในการเข้ารหัส 5 หมายเลขคุณต้องมี 3 บิต เราทำการซื้อขายที่นี่ความสามารถในการใช้ 1 บิตสำหรับ '0' สำหรับความต้องการใช้ 4 บิตสำหรับ '-2'
เปรียบเทียบสิ่งนี้กับการส่ง 200 จำนวนโดยพลการ หากเอนทิตีของคุณไม่สามารถอยู่ในไทล์เดียวกันคุณเกือบจะรับประกันได้ว่าคุณได้รับการกระจายทางสถิติที่ไม่ดี กรณีที่ดีที่สุดจะเป็น 100 หมายเลขที่ไม่ซ้ำกัน (ทั้งหมดใน X เดียวกันกับ Y ที่แตกต่างกัน) นั่นคืออย่างน้อย 7 บิตต่อหมายเลข (175 ไบต์) และยากมากสำหรับอัลกอริธึมการบีบอัดใด ๆ
การบีบอัดเดลต้าทำงานในกรณีพิเศษเมื่อเอนทิตีของคุณเปลี่ยนเพียงเล็กน้อย หากคุณมีการเปลี่ยนแปลงที่เป็นเอกลักษณ์จำนวนมากการเข้ารหัสเดลต้าจะไม่ช่วย
โปรดทราบว่าการเข้ารหัสและการบีบอัดเดลต้าใช้ในสถานการณ์อื่นที่มีการแปลงอื่นเช่นกัน
MPEG แบ่งภาพเป็นสี่เหลี่ยมเล็ก ๆ และหากส่วนใดส่วนหนึ่งของภาพเคลื่อนไหวเฉพาะการเคลื่อนไหวและการเปลี่ยนแปลงคือความสว่างเท่านั้นที่จะถูกบันทึก ในภาพยนตร์ 25fps การเปลี่ยนแปลงมากมายระหว่างเฟรมนั้นเล็กมาก อีกครั้งการเข้ารหัสเดลต้า + การบีบอัด ทำงานได้ดีที่สุดสำหรับฉากแบบคงที่