คุณจะได้สีที่ดีจาก 2BPP บนโลกนี้ได้อย่างไร


11

ฉันได้ดูพื้นผิว PowerVR และพบกับพื้นผิวหลายอย่างที่ดูเหมือน 2 บิตต่อพิกเซล นี่ตรงไปตรงมารบกวนจิตใจของฉัน วิธีการหนึ่งที่ได้รับการรักษาสีที่เหมาะสมแม้ครึ่งเมื่อคุณมีเพียง 4 รัฐที่เป็นไปได้ต่อ pi ต่อพิกเซล? ฉันจะรักทรัพยากรใด ๆ ที่นั่นพูดคุยเกี่ยวกับการบีบอัดที่อยู่เบื้องหลังเพลงดังกล่าว ขอบคุณ!


ด้วย JPG, คุณจะได้รับสีที่เหมาะสมกับภายใต้ 1BPP :)
อีวาน Kuckir

คำตอบ:


13

การเข้ารหัส PVRTC 2BPP ตามที่แนะนำในบทความนี้แบ่งรูปภาพออกเป็นบล็อก 8x4-texel และบีบอัดแต่ละบล็อกเพื่อให้มีการเก็บสี RGB เพียงสองสีสำหรับบล็อก texel สามสิบสอง

ไม่มีเท็กซัสสามสิบสองเก็บสีของตัวเอง - แต่ละเท็กเซลเก็บข้อมูลเฉพาะเกี่ยวกับวิธีการผสมผสานระหว่างสองสี RGB ของบล็อก 8x4-Texel

หากภาพต้นฉบับมีบล็อก 8x4 texel ที่มีสีรุ้ง 32 สีการบีบอัด PVRTC 2BPP จะทำงานได้ไม่ดีมากในการรักษาคุณภาพเนื่องจากใน PVRTC 2BPP แต่ละบล็อก 8x4 texel มีเพียงสองสี RGB เพื่อผสมผสานกับ


ที่น่าสนใจ! ขอบคุณมาก. น่าเศร้าที่ฉันมีปัญหาในการโหลดกระดาษที่คุณเชื่อมโยง อาจจะเป็นโฮสต์ใน EC2 ของ Amazon หรือไม่ ;)
Toji

6

การบีบอัดพื้นผิวไม่บีบอัดพิกเซล มันบีบอัดบล็อกของพิกเซล เมื่อมีการอ้างอิงแต่ละพิกเซล 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


1

@Toji เว็บไซต์ที่อยู่ในกระดาษนั้นค่อนข้างเจ้าอารมณ์ แต่มันเหมาะสำหรับฉันเมื่อเช้านี้ ความล้มเหลวที่ถ้าคุณมีการเข้าถึง ACM / SIGGRAPH ก็เป็นเจ้าภาพที่นี่ น่าแปลกที่มันก็ยังอยู่ใน / PowerVR เว็บไซต์ของนักพัฒนา IMG (ลงทะเบียนฟรี) แต่ฉันไม่สามารถดูเหมือนจะหาส่วนขวา :-(

[UPDATE] มันยังอยู่ในเว็บไซต์ IMG ที่นี่ [/ UPDATE]

@bmcnet: PVRTC ไม่แบ่งพื้นผิวออกเป็นบล็อกเช่น ETC หรือ S3TC FWIW ฉันได้ทำการทดสอบกับพื้นผิวแบบบล็อก แต่ฉันไม่สามารถหาวิธีบรรจุข้อมูลลงในบล็อกที่มีในตัวเองได้และยังได้รับผลลัพธ์ตามที่ต้องการ แต่มันเป็นระบบบีบอัดพื้นผิวแบบ 'สากล' อีกเล็กน้อย มันมีภาพความละเอียดต่ำ 2 ภาพซึ่งจะเพิ่มความละเอียดของเป้าหมายเป็นสองเท่าจากนั้นทำการผสมภาพเหล่านี้เข้าด้วยกันบนพื้นฐานของ texel-by-texel

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.