การบีบอัดข้อมูลแบบไม่สูญเสียคืออะไร?

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

ไฟล์ทั่วไปบางประเภทที่ใช้การบีบอัดข้อมูลแบบไม่สูญเสียรวมถึงไฟล์ zip ที่ใช้งานทางคอมพิวเตอร์ของ International Business Machines (IBM) และไฟล์ gzip ที่ใช้คอมพิวเตอร์ Unix นอกจากนี้ยังใช้รูปแบบไฟล์ภาพเช่นรูปแบบการแลกเปลี่ยนกราฟิก (GIF), กราฟิกเครือข่ายพกพา (PNG) และไฟล์บิตแมป (BMP) อัลกอริทึมการบีบอัดข้อมูลยังแตกต่างกันไปตามชนิดของไฟล์ที่ถูกบีบอัดโดยมีรูปแบบทั่วไปสำหรับไฟล์ข้อความเสียงและไฟล์โปรแกรมที่เรียกใช้งานได้

อัลกอริทึมหลักสองประเภทสำหรับการบีบอัดข้อมูลแบบไม่สูญเสียขึ้นอยู่กับแบบจำลองทางสถิติของข้อมูลอินพุตและโมเดลการแม็พของบิตสตริงในไฟล์ข้อมูล อัลกอริธึมเชิงสถิติประจำที่ใช้คือการแปลง Burrows-Wheeler (BWT) อัลกอริทึม Abraham Lempel และ Jacob Ziv (LZ77) ที่ตีพิมพ์ในปี 1977 และการทำนายโดยวิธีจับคู่บางส่วน (PPM) อัลกอริทึมการทำแผนที่ที่ใช้บ่อยรวมถึงอัลกอริทึมการเข้ารหัส Huffman และการเข้ารหัสทางคณิตศาสตร์

อัลกอริธึมการบีบอัดข้อมูลแบบไม่สูญเสียบางตัวเป็นเครื่องมือโอเพ่นซอร์สและอื่น ๆ นั้นเป็นกรรมสิทธิ์และได้รับการจดสิทธิบัตรแม้ว่าสิทธิบัตรของบางตัวก็หมดอายุ ซึ่งอาจส่งผลให้วิธีการบีบอัดบางครั้งใช้กับรูปแบบไฟล์ที่ไม่ถูกต้อง เนื่องจากความจริงที่ว่าวิธีการบีบอัดข้อมูลบางอย่างเข้ากันไม่ได้การจัดเก็บไฟล์แบบผสมมักจะทำให้ส่วนประกอบของไฟล์ลดลง ตัวอย่างเช่นไฟล์ภาพที่มีข้อความที่ถูกบีบอัดสามารถแสดงความเสื่อมโทรมในความสามารถในการอ่านของข้อความเมื่อเรียกคืน สแกนเนอร์และซอฟต์แวร์ที่ใช้การเหนี่ยวนำไวยากรณ์สามารถแยกความหมายจากข้อความที่เก็บไว้พร้อมกับไฟล์ภาพโดยใช้สิ่งที่เรียกว่าการวิเคราะห์ความหมายแฝง (LSA)

รูปแบบวิธีการแมปอัลกอริทึมสำหรับการบีบอัดข้อมูลแบบไม่สูญเสียคือการใช้รหัสสากล มีความยืดหยุ่นในการใช้งานมากกว่าการเข้ารหัส Huffman ไม่ต้องการความรู้เกี่ยวกับค่าจำนวนเต็มสูงสุดล่วงหน้า อย่างไรก็ตามการเข้ารหัส Huffman และการเข้ารหัสทางเลขคณิตทำให้อัตราการบีบอัดข้อมูลดีขึ้น ยังมีความพยายามในการสร้างวิธีการบีบอัดข้อมูลสากลที่จะสร้างอัลกอริทึมที่ทำงานได้ดีสำหรับแหล่งข้อมูลที่หลากหลาย