ว่ามันบีบอัดข้อมูลเมื่อเทียบกับอาร์เรย์พิกเซลที่เห็นได้ชัด
แต่อะไรที่ทำให้แตกต่างจากการบีบอัดปกติ (เช่น png, jpeg)
ว่ามันบีบอัดข้อมูลเมื่อเทียบกับอาร์เรย์พิกเซลที่เห็นได้ชัด
แต่อะไรที่ทำให้แตกต่างจากการบีบอัดปกติ (เช่น png, jpeg)
คำตอบ:
เมื่อความคิดเห็นของ Simon พาดพิงถึงความแตกต่างที่สำคัญอย่างหนึ่งระหว่างการบีบอัดพื้นผิวของฮาร์ดแวร์และการบีบอัดรูปภาพอื่น ๆ ที่ใช้กันทั่วไปคือก่อนหน้านี้ไม่ได้ใช้การเข้ารหัสแบบเอนโทรปี การเข้ารหัสแบบเอนโทรปีคือการใช้บิตบิตที่สั้นกว่าเพื่อแสดงรูปแบบทั่วไปที่เกิดขึ้นหรือทำซ้ำในแหล่งข้อมูลดังที่เห็นในรูปแบบคอนเทนเนอร์เช่น ZIP รูปแบบภาพทั่วไปจำนวนมากเช่น GIF, JPEG และ PNG และเสียงทั่วไปมากมาย และรูปแบบวิดีโอ
การเข้ารหัสแบบเอนโทรปีทำได้ดีในการบีบอัดข้อมูลทุกประเภท แต่มันก็สร้างอัตราส่วนการบีบอัดข้อมูลที่แท้จริง พื้นที่บางส่วนของภาพอาจมีรายละเอียดเล็กน้อย (หรือรายละเอียดถูกคาดการณ์ได้ดีจากรุ่นการเข้ารหัสที่คุณใช้) และต้องการบิตน้อยมาก แต่พื้นที่อื่นอาจมีรายละเอียดที่ซับซ้อนซึ่งต้องใช้บิตการเข้ารหัสมากขึ้น สิ่งนี้ทำให้ยากต่อการใช้การเข้าถึงแบบสุ่มเนื่องจากไม่มีวิธีการคำนวณที่ตรงไปตรงมาในข้อมูลบีบอัดที่คุณสามารถหาพิกเซลที่กำหนด ( x , y) พิกัด นอกจากนี้รูปแบบการเข้ารหัสเอนโทรปีส่วนใหญ่ยังเป็นของรัฐดังนั้นจึงเป็นไปไม่ได้ที่จะเริ่มถอดรหัสที่ตำแหน่งใดก็ได้ในสตรีม คุณต้องเริ่มจากจุดเริ่มต้นเพื่อสร้างสถานะที่ถูกต้อง อย่างไรก็ตามการเข้าถึงแบบสุ่มมีความจำเป็นสำหรับการสุ่มตัวอย่างพื้นผิวเนื่องจาก shader อาจสุ่มตัวอย่างจากตำแหน่งใด ๆ ในพื้นผิวได้ตลอดเวลา
ดังนั้นแทนที่จะเข้ารหัสแบบเอนโทรปีการบีบอัดฮาร์ดแวร์จึงใช้แบบแผนอัตราส่วนคงที่และบล็อก ตัวอย่างเช่นในการบีบอัด DXT / BCnพื้นผิวจะถูกแบ่งออกเป็นบล็อกพิกเซล 4 × 4 ซึ่งแต่ละรายการจะถูกเข้ารหัสใน 64 หรือ 128 บิต (ขึ้นอยู่กับรูปแบบที่เลือก); ในASTCรูปแบบที่แตกต่างกันใช้ขนาดบล็อกตั้งแต่ 4 × 4 ถึง 12 × 12 และบล็อกทั้งหมดจะถูกเข้ารหัสใน 128 บิต รายละเอียดว่าบิตเป็นตัวแทนของข้อมูลภาพแตกต่างกันอย่างไรระหว่างรูปแบบ (และอาจแตกต่างกันไปจากบล็อกหนึ่งไปยังบล็อกถัดไปในรูปภาพเดียวกัน) แต่เนื่องจากอัตราส่วนได้รับการแก้ไขแล้วจึงเป็นเรื่องง่ายสำหรับฮาร์ดแวร์ในการคำนวณตำแหน่งในหน่วยความจำ มีพิกเซล( x , y ) ที่กำหนดและแต่ละบล็อกมีข้อมูลในตัวเองดังนั้นจึงสามารถถอดรหัสได้อย่างอิสระจากบล็อกอื่น ๆ
Another consideration in hardware texture compression is that the decoding should be efficiently implementable in hardware. This means that heavy math operations and complex dataflow are strongly disfavored. The BCn formats, for instance, can be decoded by doing a handful of 8-bit integer math operations per block to populate a small lookup table, then just looking up the appropriate table entry per pixel. This requires very little area on-chip, which is important because you probably want to decode several blocks in parallel, and thus need several copies of the decode hardware.
ในทางตรงกันข้ามรูปแบบที่ใช้ DCT เช่น JPEG ต้องการจำนวนคณิตศาสตร์ต่อพิกเซลแบบไม่ต้องพูดถึง dataflow ที่ซับซ้อนซึ่งสลับและกระจายค่ากลางต่างๆในพิกเซลภายในบล็อก (ดูบทความนี้สำหรับรายละเอียดเต็มไปด้วยเลือดของการถอดรหัส DCT) นี่จะเป็นเรื่องคร่าวๆสำหรับการใช้งานฮาร์ดแวร์ซึ่งฉันคาดเดาว่าทำไม AFAICT ไม่มีฮาร์ดแวร์ GPU ที่เคยใช้การบีบอัดพื้นผิวบนพื้นฐาน DCT หรือเวฟเล็ต .
"วิธีการบีบอัดพื้นผิว (ฮาร์ดแวร์) ทำงานอย่างไร"เป็นหัวข้อขนาดใหญ่ หวังว่าฉันสามารถให้ข้อมูลเชิงลึกบางส่วนโดยไม่ต้องทำซ้ำเนื้อหาของคำตอบของนาธาน
การบีบอัดพื้นผิวโดยทั่วไปแตกต่างจากเทคนิคการบีบอัดภาพ 'มาตรฐาน' เช่น JPEG / PNG ในสี่วิธีหลักดังที่อธิบายไว้ในการแสดงผลของ Beers และ al จากพื้นผิวที่บีบอัด :
ความเร็วในการถอดรหัส : คุณไม่ต้องการให้การบีบอัดพื้นผิวช้าลง (อย่างน้อยก็ไม่สังเกตเห็นได้ชัด) กว่าการใช้พื้นผิวที่ไม่ได้บีบอัด มันควรจะค่อนข้างง่ายในการแตกเนื่องจากมันสามารถช่วยให้เกิดการคลายอย่างรวดเร็วโดยไม่ต้องใช้ฮาร์ดแวร์และพลังงานมากเกินไป
การเข้าถึงแบบสุ่ม : คุณไม่สามารถคาดเดาได้ง่ายว่าจะต้องใช้เอกสารใดบ้างระหว่างการแสดงผลที่กำหนด หากเซตย่อยบางอันMของเท็กซัสที่เข้าถึงมานั้นบอกว่าอยู่ตรงกลางของรูปภาพมันเป็นสิ่งสำคัญที่คุณไม่จำเป็นต้องถอดรหัสบรรทัด 'ก่อนหน้า' ทั้งหมดของพื้นผิวเพื่อกำหนดM ; ด้วย JPEG และ PNG สิ่งนี้จำเป็นเนื่องจากการถอดรหัสพิกเซลขึ้นอยู่กับข้อมูลที่ถอดรหัสก่อนหน้านี้
โปรดทราบว่าการพูดแบบนี้เพียงเพราะคุณมีการเข้าถึงแบบ "สุ่ม" ไม่ได้หมายความว่าคุณควรลองตัวอย่างโดยพลการอย่างสมบูรณ์
อัตราการบีบอัดและคุณภาพการมองเห็น : เบียร์และอัลเถียงกัน (เชื่อมั่น) ว่าการสูญเสียคุณภาพบางอย่างในผลลัพธ์ที่ถูกบีบอัดเพื่อปรับปรุงอัตราการบีบอัดนั้นเป็นการแลกเปลี่ยนที่คุ้มค่า ในการเรนเดอร์ 3D ข้อมูลน่าจะถูกจัดการ (เช่นตัวกรอง & เงา ฯลฯ ) ดังนั้นการสูญเสียคุณภาพบางอย่างอาจถูกหลอกลวง
การเข้ารหัส / ถอดรหัสแบบอสมมาตร : แม้ว่าอาจจะเป็นที่ถกเถียงกันอยู่เล็กน้อยพวกเขาอ้างว่ามันเป็นที่ยอมรับได้ว่ากระบวนการเข้ารหัสช้ากว่าการถอดรหัสมาก เนื่องจากการถอดรหัสต้องอยู่ในอัตราการเติม HW ซึ่งเป็นที่ยอมรับโดยทั่วไป (ฉันจะยอมรับว่าการบีบอัด PVRTC, ETC2 และอื่น ๆ ที่คุณภาพสูงสุดอาจเร็วกว่า)
อาจแปลกใจที่บางคนเรียนรู้ว่าการบีบอัดพื้นผิวนั้นมีมานานกว่าสามทศวรรษแล้ว จำลองการบินจาก 70s และ 80s ที่จำเป็นในการเข้าถึงค่อนข้างข้อมูลจำนวนมากพื้นผิวและให้ที่1MB แรมในปี 1980 เป็น> $ 6000 , การลดการปล่อยเนื้อเป็นสิ่งจำเป็น เป็นอีกตัวอย่างหนึ่งในช่วงกลางยุค 70 แม้กระทั่งหน่วยความจำความเร็วสูงและตรรกะจำนวนเล็กน้อยเช่นเพียงพอสำหรับบัฟเฟอร์เฟรมเฟรม RGB ขนาด 512x512 ที่พอเหมาะ ) ก็อาจทำให้คุณได้ราคาบ้านหลังเล็ก ๆ
แม้ว่า AFAIK ไม่เรียกอย่างชัดเจนว่าการบีบอัดเนื้อในวรรณคดีและสิทธิบัตรคุณสามารถหาอ้างอิงถึงเทคนิค ได้แก่ :
รูปแบบง่ายๆของการสังเคราะห์พื้นผิวทางคณิตศาสตร์ / ขั้นตอนการ
b. การใช้พื้นผิวช่องสัญญาณเดียว (เช่น 4bpp) ที่จะถูกคูณด้วยค่า RGB ต่อพื้นผิว
c YUV และ
d จานสี (วรรณกรรมแนะนำให้ใช้วิธีการของ Heckbert ในการบีบอัด)
ดังที่ได้กล่าวไว้ข้างต้นการบีบอัดพื้นผิวนั้นมักจะสูญเสียไปและทำให้ปัญหากลายเป็นหนึ่งในความพยายามที่จะนำเสนอข้อมูลที่สำคัญในแบบกะทัดรัดในขณะที่การกำจัดข้อมูลที่สำคัญน้อยกว่า รูปแบบต่าง ๆ ที่จะอธิบายด้านล่างทั้งหมดมีรูปแบบ 'พารามิเตอร์' โดยปริยายที่ใกล้เคียงกับพฤติกรรมทั่วไปของข้อมูลพื้นผิวและการตอบสนองของตา
นอกจากนี้เนื่องจากการบีบอัดพื้นผิวมีแนวโน้มที่จะใช้การเข้ารหัสอัตราคงที่กระบวนการบีบอัดมักจะมีขั้นตอนการค้นหาเพื่อค้นหาชุดของพารามิเตอร์ซึ่งเมื่อป้อนเข้ากับแบบจำลองจะสร้างการประมาณค่าที่ดีของพื้นผิวดั้งเดิม อย่างไรก็ตามขั้นตอนการค้นหานั้นอาจใช้เวลานาน
(ยกเว้นเครื่องมือที่เป็นไปได้เช่นoptipngนี่เป็นอีกพื้นที่หนึ่งที่การใช้ PNG และ JPEG โดยทั่วไปแตกต่างจากแผนการบีบอัดพื้นผิว)
ก่อนที่จะดำเนินการต่อไปเพื่อช่วยในการทำความเข้าใจเพิ่มเติมเกี่ยวกับ TC มันมีค่าดูที่การวิเคราะห์ส่วนประกอบหลัก (PCA) - เครื่องมือทางคณิตศาสตร์ที่มีประโยชน์มากสำหรับการบีบอัดข้อมูล
ในการเปรียบเทียบวิธีการต่างๆเราจะใช้ภาพต่อไปนี้:
โปรดทราบว่านี่เป็นภาพที่ค่อนข้างยากโดยเฉพาะอย่างยิ่งสำหรับพาเล็ตและวิธีการ VQTC เนื่องจากมันครอบคลุมลูกบาศก์สี RGB จำนวนมากและมีเพียง 15% ของข้อความที่ใช้สีซ้ำ
เพื่อลดค่าใช้จ่ายในการรับส่งข้อมูลเกมพีซีและเกมคอนโซลบางเกมก็ใช้ภาพแบบพาเล็ตซึ่งเป็นรูปแบบของ Vector Quantisation (VQ) วิธีการแบบใช้พาเล็ตทำให้สมมติฐานที่ว่าภาพที่กำหนดใช้เพียงส่วนเล็ก ๆ ของลูกบาศก์สี RGB (A) ปัญหาของพื้นผิวแบบพาเล็ตคืออัตราการบีบอัดสำหรับคุณภาพที่ทำได้นั้นโดยทั่วไปค่อนข้างปานกลาง ตัวอย่างพื้นผิวที่บีบอัดให้กับ "4bpp" (โดยใช้ GIMP) สร้าง
หมายเหตุอีกครั้งว่านี่เป็นภาพที่ค่อนข้างยากสำหรับแผนการ VQ
แรงบันดาลใจจากเบียร์และอัลคอนโซล Dreamcast ใช้ VQ เพื่อเข้ารหัส 2x2 หรือแม้กระทั่งบล็อกพิกเซล 2x4 ด้วยไบต์เดียว ในขณะที่ "เวกเตอร์" ในพื้นผิวแบบพาเล็ทมี 3 หรือ 4 มิติบล็อก 2x2 พิกเซลสามารถพิจารณาเป็น 16 มิติ รูปแบบการบีบอัดจะถือว่ามีเพียงพอการทำซ้ำเวกเตอร์เหล่านี้โดยประมาณ
แม้ว่า VQ สามารถบรรลุคุณภาพที่น่าพอใจด้วย ~ 2bpp ปัญหาของโครงร่างเหล่านี้คือต้องใช้หน่วยความจำที่ต้องพึ่งพาอ่าน: การอ่านเริ่มต้นจากแผนที่ดัชนีเพื่อกำหนดรหัสสำหรับพิกเซลตามด้วยวินาทีเพื่อดึงข้อมูลพิกเซลที่เกี่ยวข้องจริง ๆ ด้วยรหัสนั้น แคชเพิ่มเติมสามารถช่วยบรรเทาความล่าช้าที่เกิดขึ้น แต่เพิ่มความซับซ้อนให้กับฮาร์ดแวร์
ภาพตัวอย่างบีบอัดด้วยโครงการ 2bpp แคสต์เป็น แผนที่ดัชนีคือ:
การบีบอัดข้อมูล VQ สามารถทำได้หลายวิธีอย่างไรก็ตามIIRCด้านบนทำโดยใช้ PCA เพื่อหาค่าจากนั้นแบ่งพาร์ติชันเวกเตอร์ 16D ตามเวกเตอร์หลักออกเป็น 2 ชุดซึ่งเวกเตอร์ตัวแทนสองตัวลดข้อผิดพลาดกำลังสองเฉลี่ย กระบวนการนี้จะเรียกใช้ซ้ำจนกว่าจะมีการผลิตเวกเตอร์จำนวน 256 แบบ จากนั้นใช้วิธีอัลกอริทึม k-mean / Lloydทั่วโลกเพื่อปรับปรุงตัวแทน
การแปลงพื้นที่สีใช้ประโยชน์จาก PCA โดยสังเกตว่าการกระจายสีทั่วโลกมักจะแพร่กระจายไปตามแกนหลักและกระจายน้อยลงตามแกนอื่น ๆ สำหรับการเป็นตัวแทนของ YUV สมมติฐานคือก) แกนหลักมักจะอยู่ในทิศทางของลูม่าและข) ดวงตานั้นไวต่อการเปลี่ยนแปลงในทิศทางนี้มากขึ้น
ระบบ 3dfx Voodoo จัดให้มีระบบการบีบอัด"YAB" , 8bpp, "Narrow Channel" ที่แบ่งเท็กเซล 8 บิตออกเป็นฟอร์แมต 322 และใช้สีที่ผู้ใช้เลือกเปลี่ยนเป็นข้อมูลเพื่อแมปเป็น RGB แกนหลักจึงมี 8 ระดับและแกนเล็กลง 4 ต่อ
ชิป S3 Virge มีรูปแบบที่เรียบง่ายกว่าเล็กน้อยคือ 4bpp ซึ่งอนุญาตให้ผู้ใช้ระบุสำหรับทั้งพื้นผิวสีสองสีซึ่งควรวางอยู่บนแกนหลักพร้อมกับพื้นผิว 4bpp สีเดียว จากนั้นค่าต่อพิกเซลจะผสมสีสุดท้ายกับน้ำหนักที่เหมาะสมเพื่อสร้างผลลัพธ์ RGB
กรอกลับจำนวนปีบาง Delp เซรั่มและการออกแบบรูปแบบที่เรียบง่าย (ขาวดำ) การบีบอัดภาพที่เรียกว่าบล็อกตัด Coding (BTC) บทความนี้ยังรวมถึงอัลกอริทึมการบีบอัด แต่เพื่อจุดประสงค์ของเราเราส่วนใหญ่สนใจในข้อมูลการบีบอัดที่เกิดและกระบวนการบีบอัด
ในรูปแบบนี้ภาพจะถูกแบ่งออกเป็นปกติบล็อกพิกเซล 4x4 ซึ่งสามารถบีบอัดได้อย่างอิสระด้วยเอฟเฟกต์ VQ ที่แปลเป็นภาษาท้องถิ่น แต่ละบล็อกจะแสดงด้วย "ค่า" สองชุดคือaและbและชุด 4x4 บิตของดัชนีซึ่งระบุว่าจะใช้ค่าใดในสองพิกเซลสำหรับแต่ละพิกเซล
S3TC : 4bpp RGB (+ 1bit อัลฟา)
แม้ว่าหลายสีสายพันธุ์ของ BTC สำหรับการบีบอัดภาพที่ถูกนำเสนอที่น่าสนใจให้เราเป็นIourcha et al, ของ S3TCบางอย่างที่ดูเหมือนจะเป็นการค้นพบของการทำงานลืมค่อนข้างHoffert et al,ว่า ถูกใช้ใน Quicktime ของ Apple
S3TC ดั้งเดิมซึ่งไม่มีตัวแปร DirectX จะบีบอัดบล็อกของทั้ง RGB หรือ RGB + 1 บิต Alpha เป็น 4bpp บล็อก 4x4 แต่ละอันในพื้นผิวจะถูกแทนที่ด้วยสีสองสีคือAและBซึ่งสีอื่น ๆ มากถึงสองสีนั้นจะได้มาจากการผสมเชิงเส้นคงที่และน้ำหนัก เพิ่มเติมแต่ละ texel ในบล็อกมีดัชนี 2 บิตที่กำหนดวิธีการเลือกหนึ่งในสี่สีเหล่านี้
ตัวอย่างต่อไปนี้คือส่วน 4x4 พิกเซลของภาพทดสอบที่บีบอัดด้วยเครื่องมือบีบอัด AMD / ATI (โดยทางเทคนิคแล้วมันมาจากภาพทดสอบรุ่น 512x512 แต่ยกโทษให้ฉันโดยไม่มีเวลาให้ฉันอัปเดตตัวอย่าง )
นี่แสดงให้เห็นถึงกระบวนการบีบอัด: คำนวณค่าเฉลี่ยและแกนหลักของสี แบบที่ดีที่สุดจะถูกดำเนินการเพื่อหาจุดสิ้นสุดสองจุดที่ 'นอนอยู่บน' แกนซึ่งรวมกับการผสมผสาน 1: 2 และ 2: 1 (หรือในบางกรณีการผสมผสาน 50:50) ของจุดสิ้นสุดนั้น ลดข้อผิดพลาดให้น้อยที่สุด แต่ละพิกเซลดั้งเดิมจะถูกแมปกับสีใดสีหนึ่งเพื่อให้ได้ผลลัพธ์
หากในกรณีนี้สีมีความสมเหตุสมผลโดยแกนหลักความคลาดเคลื่อนจะค่อนข้างต่ำ อย่างไรก็ตามหากเช่นในบล็อก 4x4 ที่อยู่ใกล้เคียงที่แสดงด้านล่างสีมีความหลากหลายมากกว่าข้อผิดพลาดจะสูงขึ้น
ภาพตัวอย่างบีบอัดด้วยAMD Compressonatorสร้าง:
เนื่องจากสีถูกกำหนดอย่างอิสระต่อบล็อกจึงอาจมีความไม่ต่อเนื่องที่ขอบเขตของบล็อก แต่ตราบใดที่ความละเอียดยังคงอยู่ในระดับที่สูงพอบล็อกสิ่งประดิษฐ์เหล่านี้อาจไม่มีใครสังเกตเห็น:
ETC1 : 4bpp RGB
Ericsson Texture Compression ใช้งานได้กับ 4x4 บล็อกของ texels แต่ทำให้สันนิษฐานได้ว่าเหมือนกับ YUV แกนหลักของชุด Texel ในท้องถิ่นนั้นมีความสัมพันธ์อย่างมากกับ "luma" ชุดของเท็กซัลนั้นสามารถแสดงเพียงสีเฉลี่ยและ 'ความยาว' สเกลาร์เชิงปริมาณที่สูงของการฉายภาพของเท็กซัสไปยังแกนที่สันนิษฐานนั้น
เนื่องจากสิ่งนี้ช่วยลดค่าใช้จ่ายในการจัดเก็บข้อมูลเมื่อเทียบกับ S3TC ทำให้ ETC สามารถแนะนำรูปแบบการแบ่งพาร์ติชั่นโดยบล็อก 4x4 จะถูกแบ่งย่อยเป็นคู่ของบล็อกย่อยแนวนอน 4x2 หรือแนวตั้ง 2x4 แต่ละอันมีสีเฉลี่ยของตัวเอง ภาพตัวอย่างสร้าง:
พื้นที่รอบ ๆ จะงอยปากยังแสดงให้เห็นถึงการแบ่งพาร์ติชันตามแนวนอนและแนวตั้งของบล็อก 4x4
มีบางระบบการบีบอัดพื้นผิวที่มีการผสมผสานกันระหว่างรูปแบบทั่วโลกและท้องถิ่นเช่นว่าจานกระจายเป็นIvanov และ KuzminหรือวิธีการของPVRTC
PVRTC : 4 & 2 bpp RGBA
PVRTC ถือว่าภาพที่อัปสเกล (ในทางปฏิบัติ, bilinearly) เป็นการประมาณที่ดีสำหรับเป้าหมายเต็มความละเอียดและความแตกต่างระหว่างการประมาณและเป้าหมายนั่นคือภาพเดลต้า มีแกนหลักที่โดดเด่น นอกจากนี้จะถือว่าแกนหลักในพื้นที่สามารถแก้ไขข้ามภาพได้
(ต้องทำ: เพิ่มภาพที่แสดงรายละเอียด)
ตัวอย่างพื้นผิวที่ถูกบีบอัดด้วย PVRTC1 4bpp สร้างขึ้น:
ด้วยพื้นที่รอบ ๆ ปากนก:
เมื่อเทียบกับ BTC-schemes บล็อกของสิ่งประดิษฐ์มักจะถูกกำจัด แต่บางครั้งก็อาจ "เกินขนาด" หากมีความไม่ต่อเนื่องที่แข็งแกร่งในภาพต้นฉบับ เงาของหัว lorikeet
ตัวแปร 2bpp มีความผิดพลาดสูงกว่า 4bpp โดยธรรมชาติ (โน้ตที่สูญเสียความแม่นยำรอบสีน้ำเงินพื้นที่ความถี่สูงใกล้คอ) แต่เนื้อหายังมีคุณภาพพอสมควร:
แม้ว่าอัลกอริธึมการบีบอัดสำหรับรูปแบบที่อธิบายไว้ข้างต้นจะมีค่าใช้จ่ายในการประเมินปานกลางถึงสูง แต่อัลกอริธึมการบีบอัดโดยเฉพาะอย่างยิ่งสำหรับการปรับใช้ฮาร์ดแวร์นั้นมีราคาค่อนข้างต่ำ ตัวอย่างเช่น ETC1 ต้องการมากกว่า MUXes และตัวเสริมที่มีความแม่นยำต่ำเพียงเล็กน้อย S3TC ได้อย่างมีประสิทธิภาพยิ่งขึ้นนอกจากนี้หน่วยเพิ่มเติมเพื่อทำการผสม; และ PVRTC เพิ่มขึ้นอีกเล็กน้อย ในทางทฤษฎีแล้วโครงร่าง TC แบบง่ายเหล่านี้สามารถอนุญาตให้สถาปัตยกรรม GPU เพื่อหลีกเลี่ยงการคลายการบีบอัดจนกระทั่งก่อนขั้นตอนการกรองซึ่งจะช่วยเพิ่มประสิทธิภาพของแคชภายใน
โหมด TC ทั่วไปอื่น ๆ ที่ควรกล่าวถึงคือ:
ETC2 - เป็น superset (4bpp) ของ ETC1 ที่ปรับปรุงการจัดการพื้นที่ด้วยการกระจายสีที่ไม่สอดคล้องกับ 'luma' นอกจากนี้ยังมีตัวแปร 4bpp ที่รองรับ 1 บิตอัลฟาและรูปแบบ 8bpp สำหรับ RGBA
ATC - เป็นอย่างมีประสิทธิภาพขนาดเล็กรูปแบบบน S3TC
FXT1 (3dfx) เป็นความทะเยอทะยานมากขึ้นแตกต่างจากรูปแบบ S3TC
BC6 & BC7: 8bpp เป็นระบบบล็อกที่รองรับ ARGB นอกเหนือจากโหมด HDR แล้วระบบเหล่านี้ยังใช้ระบบการแบ่งพาร์ติชันที่ซับซ้อนกว่า ETC เพื่อให้การกระจายสีของรูปแบบดีขึ้น
PVRTC2: 2 และ 4bpp ARGB สิ่งนี้แนะนำโหมดเพิ่มเติมรวมถึงโหมดหนึ่งที่จะเอาชนะข้อ จำกัด ด้วยขอบเขตที่แข็งแกร่งในภาพ
ASTC: นี่เป็นระบบที่ใช้บล็อก แต่ค่อนข้างซับซ้อนกว่าเนื่องจากมีขนาดบล็อกที่เป็นไปได้จำนวนมากซึ่งกำหนดเป้าหมายเป็นช่วงกว้างของ bpp นอกจากนี้ยังมีคุณสมบัติต่างๆเช่นพื้นที่พาร์ติชันสูงสุด 4 ส่วนพร้อมตัวสร้างพาร์ติชันแบบหลอกเทียมและความละเอียดตัวแปรสำหรับข้อมูลดัชนีและ / หรือความแม่นยำของสีและโมเดลสี