การบีบอัดแบบไม่สูญเสีย
การบีบอัดแบบไม่สูญเสียคือที่ซึ่งไม่มีข้อมูลสูญหาย ทุกอย่างที่ป้อนสามารถเรียกคืนได้อย่างสมบูรณ์แบบ วิธีนี้ใช้งานได้ดีสำหรับไฟล์ข้อความหรือไบนารีที่พบข้อผิดพลาดน้อยที่สุด
การบีบอัดไฟล์ใช้งานได้โดยนำไฟล์และสแกนหารูปแบบและแปลงรูปแบบเหล่านั้นเป็นอย่างอื่นซึ่งใช้พื้นที่น้อยลง
ตัวอย่างเช่น "AAAAAAAA" สามารถเปลี่ยนเป็น "8A"
ได้รับนั่นไม่ใช่วิธีการทำงานที่แน่นอนเพราะคุณมีปัญหาว่า "8A" อยู่ในคำธรรมดาหรือไม่ คุณจะคลายการบีบอัดไฟล์และมันจะผิด สถานที่ที่ดีที่จะเริ่มต้นเป็นทั้งวิกิพีเดียหรือLZW การบีบอัดข้อมูลขั้นตอนวิธีการ
มีบางรหัส psuedo เพียงแค่คัดลอกด้านล่างนี้:
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
การบีบอัดทั้งหมดใช้พจนานุกรมการค้นหาซึ่งใช้ในการบีบอัดและคลายการบีบอัดไฟล์ ที่ใหญ่กว่าพจนานุกรมที่มากกว่าที่คุณสามารถบีบอัดมันถึงแม้ว่าคุณจะไม่ใช้เป็นกฎหมายของผลตอบแทนลดลง
นอกจากนี้ยังเป็นที่น่าสังเกตว่าการบีบอัดไม่ได้ให้ไฟล์ที่เล็กกว่าเสมอไป มีสถานการณ์ (ที่มีไฟล์ขนาดเล็กหรือเมื่อบีบอัดข้อมูลแบบสุ่ม ) ที่คุณจะไม่ได้รับไฟล์ที่มีขนาดเล็กลงหลังจากการบีบอัด มีความท้าทายบางอย่างเกี่ยวกับความสามารถในการบีบอัดข้อมูลแบบสุ่ม
การบีบอัด "Lossy"
ดังกล่าวข้างต้นส่วนใหญ่เกี่ยวข้องกับการบีบอัด lossless การบีบอัดประเภทอื่นที่ใช้ในแอปพลิเคชั่นวิดีโอ / เสียงเช่น MP3, JPG และ h.264 เป็นตัวอย่างการบีบอัดที่ไม่ดี
การบีบอัดข้อมูลแบบสูญหายทำโดยการทิ้งข้อมูลที่มีโอกาสน้อยที่สุดที่จะสังเกตเห็น ในเสียงนี่ฟังดูประมาณ 30,000 Hrz และต่ำกว่า 100 Hrz พร้อมกับสิ่งต่าง ๆ ในภาพ (คงที่) มันจะลบสิ่งต่าง ๆ และผสานพิกเซลเข้าด้วยกันพร้อมกับทิ้งข้อมูล
การบีบอัด lossy เป็นรูปแบบของการเปลี่ยนการเข้ารหัส มันเฉลี่ยข้อมูลเพื่อลดขนาดโดยรวม ตัวอย่างเช่นบล็อกขนาด 10 พิกเซลในรูปภาพสีที่ต่างกันเล็กน้อยอาจถูกรวมเข้าด้วยกันเป็นสีเดียวจึงถูกบีบอัด
ในการบีบอัดวิดีโอมักจะคำแนะนำจะถูกวางไว้ในการวาดเพียงพิกเซลที่มีการเปลี่ยนแปลงตั้งแต่เฟรมสุดท้ายหรือคีย์เฟรม