การบีบอัดพื้นผิวไม่บีบอัดพิกเซล มันบีบอัดบล็อกของพิกเซล เมื่อมีการอ้างอิงแต่ละพิกเซล GPU จะคำนวณว่าบล็อกใดแสดงถึงพิกเซล จากนั้นจะประมวลผลบล็อกทั้งหมดเพื่อให้ได้สีของพิกเซลนั้น
ตัวอย่าง
ให้ถือว่าขนาดบล็อกเป็น 4x4 พิกเซลบนพื้นผิว RGB ไม่ถูกบีบอัดแต่ละบล็อกใช้4x4x3 = 48
ไบต์ในหน่วยความจำพื้นผิว
ตอนนี้อัลกอริทึมการบีบอัดจะคำนวณค่าเฉลี่ยสำหรับแต่ละช่องสัญญาณ (RGB) และจัดเก็บด้วยบล็อก (3 ไบต์) ตอนนี้ให้แต่ละพิกเซล 2 บิตเพื่อปรับค่าเฉลี่ยเพื่อให้พิกเซลใกล้เคียงกับสีเดิม 4x4x2x3/8 = 12
นั่นคือไบต์อื่น
จำนวนไบต์ทั้งหมดที่ใช้โดยคอมเพรสเซอร์ที่คิดค้นขึ้นใหม่นี้คือ 15 ไบต์ต่อบล็อกโดยมีอัตราส่วนการบีบอัด 31.25%
เครื่องอัดในตำนานของฉันใช้ 7.5 bpp นั่นไม่ดีเท่าที่ 2 bpp pvrtc สามารถบรรลุได้ แต่ตอนนี้คุณมีความคิดคร่าวๆว่าจะทำอย่างไรถึง 2 bbp
ปรับปรุง:
ฉันเพียงแค่มองไปที่หน้าวิกิพีเดียสำหรับ pvrtc ดูเหมือนว่า pvrtc จะไม่ใช้การบีบอัดตามบล็อกแบบดั้งเดิม ต่อไปนี้เป็นกระดาษที่อธิบายวิธีการบีบอัดข้อมูลด้วยบล็อก สิ่งที่ควรทราบ: ตัวกรองแบบบล็อคสามารถสร้างภาพที่ดูดีโดยใช้ 4bpp (ไม่มีตัวอักษร) ในขณะที่ nvrtc สามารถทำได้ด้วย 2bpp