รูปแบบภาพใหม่ PEP สัญญาการบีบอัดที่เหนือกว่าสำหรับ Pixel Art แต่การแลกเปลี่ยนด้านความเร็วก่อให้เกิดการถdebateในชุมชน

ทีมชุมชน BigGo
รูปแบบภาพใหม่ PEP สัญญาการบีบอัดที่เหนือกว่าสำหรับ Pixel Art แต่การแลกเปลี่ยนด้านความเร็วก่อให้เกิดการถdebateในชุมชน

รูปแบบภาพทดลองใหม่ที่เรียกว่า PEP (Prediction-Encoded Pixels) ได้เกิดขึ้น โดยมุ่งเป้าไปที่ pixel art และภาพที่มีสีน้อย พร้อมสัญญาว่าจะให้การบีบอัดที่ดีกว่ารูปแบบที่ยอมรับแล้วอย่าง PNG และ GIF อย่างมีนัยสำคัญ รูปแบบนี้ใช้เทคโนโลยีการบีบอัด Prediction by Partial Matching เพื่อให้ได้ขนาดไฟล์ที่เล็กกว่ารูปแบบดั้งเดิม 20-50% แม้ว่าจะต้องแลกมาด้วยความเร็วในการประมวลผล

คุณสมบัติหลักของรูปแบบ PEP

  • กรณีการใช้งานเป้าหมาย: พิกเซลอาร์ตสีน้อย (เหมาะสมที่สุดที่ ≤16 สี รองรับได้สูงสุด 256 สี)
  • วิธีการบีบอัด: Prediction by Partial Matching, Order-2 (PPM-2)
  • รูปแบบไฟล์: การบีบอัดแบบไม่สูญเสียข้อมูลพร้อมรองรับพาเลต
  • ฟังก์ชัน API: pep_compress(), pep_decompress(), pep_save(), pep_load()
  • รูปแบบสี: รองรับ RGBA และ BGRA
  • สถานะปัจจุบัน: อยู่ในระยะทดลอง

ประสิทธิภาพการบีบอัดแสดงผลลัพธ์ที่หลากหลาย

การทดสอบประสิทธิภาพเบื้องต้นเผยให้เห็นว่าประสิทธิผลของ PEP แตกต่างกันอย่างมากขึ้นอยู่กับประเภทของภาพ สำหรับภาพที่เรียบง่ายมากอย่าง sprite ต้นไม้ 4 สี PEP ได้ผลลัพธ์ 901 ไบต์ เมื่อเทียบกับ PNG ที่ 984 ไบต์ และ GIF ที่ 1,047 ไบต์ อย่างไรก็ตาม ข้อได้เปรียบของรูปแบบนี้กลับไม่ชัดเจนกับภาพประเภทอื่น ในการทดสอบหนึ่งกับภาพฟอนต์ 2 สี PNG กลับมีประสิทธิภาพเหนือกว่า PEP เล็กน้อยที่ 1,318 ไบต์ เทียบกับ PEP ที่ 1,357 ไบต์

การปรับปรุงที่น่าประทับใจที่สุดปรากฏในภาพที่มีจำนวนสีสูงกว่า ฉากที่มี 251 สีถูกบีบอัดเหลือ 73,542 ไบต์ด้วย PEP เมื่อเทียบกับ PNG ที่ 84,657 ไบต์ และ GIF ที่ 96,997 ไบต์ ซึ่งแสดงถึงการประหยัดพื้นที่ที่มีความหมายสำหรับนักพัฒนาที่ทำงานกับ pixel art ที่ซับซ้อนมากขึ้น

การเปรียบเทียบการบีบอัดระหว่าง PEP vs PNG vs GIF

ประเภทรูปภาพ ขนาด PEP ขนาด PNG ขนาด GIF ข้อได้เปรียบของ PEP
Tree1 (4 สี, 112x96) 901 ไบต์ 984 ไบต์ 1,047 ไบต์ เล็กกว่า PNG 8.4%
Font (2 สี, 192x144) 1,357 ไบต์ 1,318 ไบต์ 1,919 ไบต์ ใหญ่กว่า PNG 3%
NZ Scene (251 สี, 640x200) 73,542 ไบต์ 84,657 ไบต์ 96,997 ไบต์ เล็กกว่า PNG 13.1%

ความกังวลด้านความเร็วครอบงำการอภิปรายในชุมชน

เวลาประมวลผลที่ช้ากว่าของรูปแบบนี้กลายเป็นประเด็นสำคัญในหมู่นักพัฒนา PEP ใช้เวลานานกว่าในการบีบอัดและขยายข้อมูล 2-10 เท่าเมื่อเทียบกับรูปแบบที่มีอยู่ สำหรับฉากที่ซับซ้อน 251 สี การขยายข้อมูลใช้เวลามากกว่า 32 มิลลิวินาทีกับ PEP เทียบกับเพียง 3 มิลลิวินาทีสำหรับ PNG

สมาชิกในชุมชนตั้งคำถามว่าประโยชน์ด้านขนาดไฟล์คุ้มค่ากับการลดประสิทธิภาพหรือไม่ นักพัฒนาบางคนสังเกตว่าการถอดรหัส PNG เร็วพอสำหรับแอปพลิเคชันส่วนใหญ่แล้ว ทำให้การแลกเปลี่ยนความเร็วของ PEP เป็นที่น่าสงสัยสำหรับการใช้งานหลายกรณี

การเปรียบเทียบความเร็วในการประมวลผล

รูปแบบ เวลาการบีบอัด เวลาการคลายการบีบอัด ตัวคูณความเร็ว
PEP 0.383-25.652 มิลลิวินาที 0.412-32.121 มิลลิวินาที ช้ากว่า 2-10 เท่า
QOI 0.023-1.03 มิลลิวินาที 0.028-1.004 มิลลิวินาที ความเร็วพื้นฐาน
PNG ไม่ระบุ ~0.25-3.069 มิลลิวินาที ความเร็วมาตรฐาน

แอปพลิเคชันเฉพาะทางขับเคลื่อนความสนใจ

แม้จะมีความกังวลด้านความเร็ว รูปแบบนี้ก็พบผู้สนับสนุนในหมู่นักพัฒนาเกม pixel art ที่ให้ความสำคัญกับขนาดไฟล์มากกว่าความเร็วในการประมวลผล การออกแบบของรูปแบบนี้มุ่งเป้าไปที่เกมและการบีบอัด sprite โดยเฉพาะ ซึ่งขนาดไฟล์ที่เล็กกว่าอาจมีความสำคัญอย่างยิ่งสำหรับการแจกจ่ายและการจัดเก็บ

มันเป็นรูปแบบแบบไม่สูญเสียที่ปรับให้เหมาะสมสำหรับขนาดไฟล์มากกว่าความเร็วในการขยายข้อมูล README ดูเหมือนจะชัดเจนพอแล้ว สร้างโดยนักพัฒนาเกม pixel art สำหรับการบีบอัด sprite ในเกม pixel art ดังนั้นฉันคิดว่ามันเหมาะกับช่องว่างที่มีประโยชน์

ผู้ใช้งานแรกได้เริ่มนำการสนับสนุน PEP ไปใช้ในเครื่องมือของพวกเขาแล้ว โดยมีนักพัฒนาอย่างน้อยหนึ่งคนสร้าง command-line interface และเพิ่มการสนับสนุนให้กับแอปพลิเคชัน pixel art ภายในไม่กี่ชั่วโมงหลังจากการประกาศรูปแบบนี้

การนำไปใช้ทางเทคนิคก่อให้เกิดคำถาม

รูปแบบนี้ใช้โมเดลการทำนายที่ค่อนข้างเรียบง่าย ซึ่งดูเพียงสอง pixel ก่อนหน้าเพื่อทำนาย pixel ถัดไป เมื่อเทียบกับแนวทางที่ซับซ้อนกว่าของ PNG ที่ตรวจสอบ pixel ข้างเคียงสี่ตัว วิธีการทำนายที่เรียบง่ายกว่านี้ ร่วมกับ arithmetic encoding และการบีบอัดพาเลต อาจอธิบายได้ว่าทำไมประสิทธิภาพของ PEP จึงแตกต่างกันอย่างมากในภาพประเภทต่างๆ

รูปแบบนี้ยังคงอยู่ในสถานะทดลอง และผู้สร้างยอมรับว่าจำเป็นต้องมีการพัฒนาและข้อเสนอแนะจากชุมชนเพิ่มเติมเพื่อปรับปรุงความสามารถและกำหนดตำแหน่งสุดท้ายในภูมิทัศน์รูปแบบภาพ

อ้างอิง: Prediction-Encoded Pixels