โปรแกรมไฟล์บีบอัดไฟล์ “ตัวหนังสือ”ให้ไฟล์เล็กลงทำได้ยังไง


เริ่มตั้งแต่การมีอินเตอร์เน็ตเพื่อการใช้งานมาในยุคปี ค.ศ. 1969 (พ.ศ. 2512) ยุคของการโอนถ่ายอกสารหรือสื่อเติบโตขึ้นอย่างรวดเร็วไม่ว่าจะเป็นการการเติบโตของอินเตอร์เน็ต ซึ่งในสมัยเริ่มแรกของยุคอินเตอร์เน็ตถือว่าเป็นยุคที่ช้ามาก เพราะความเร็วของอินเตอร์เน็ตเร็ที่สุดแค่ เร็วแค่ 0.0028 เมกะบิทหรือความเร็วต่อวินาที ในปี ค.ศ. 1994 (พ.ศ. 2537)  เท่านั้นซึ่งจากปัญหาเหล่านี้ทำให้เกิดไอเดียความคิดต่อการพัฒนามาจนถึงปัจจุบันนั่นเอง ที่อินเตอร์เน็ตความเร็วสูงสุดในปี 2021 อยู่ที่ 178.01 Mbps

เมื่อในปี ค.ศ. 1984 (พ.ศ. 2527) อัลกอริทึม Lempel-Ziv-Welch (LZW) ถูกคิดค้นขึ้นมาโดย Abraham Lempel, Jacob Ziv และ Terry Welch ชื่อว่า LZW ซึ่งเป็นชื่อย่อของทั้งสามคน และทั้งสามได้ทำการพัฒนาศักยภาพของอัลกอริทึมตัวนี้มีศักยภาพในการทำงานสูง โดยใช้เทคนิคของ LZW เป็นการบีบอัดข้อมูลได้ไม่ว่าจะเป็นรูปภาพ ข้อความ ที่เราใช้กันในปัจจุบันนี้

รู้จักกับไฟล์ ZIP

ไฟล์ ZIP หรือที่รู้จักกันทั่วไปคือโปรแกรมบีบอัดและแตกไฟล์ ที่มาของหน้าที่นี้มากจากคำว่า การบีบอัดข้อมูล (Data Compression) เป็นการลดขนาดไฟล์ ด้วยการเข้ารหัสไฟล์ใหม่อีกครั้ง เพื่อให้จำนวน บิต ที่จำเป็นต่อการใช้งานมีขนาดเล็กลงกว่าไฟล์ต้นฉบับ ซึ่งหลักการต่าง ๆ ที่กล่าวมานั้นถูกนำไปใช้งานเป็น​โปรแกรมบีบอัดไฟล์ (File Compression Software) นั่นเอง

หลักการทำงานการบีบอัดไฟล์ข้อมูล 

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

แนวคิดหลักการทำงานที่เป็นพื้นฐานสำคัญ

อัลกอริทึมที่ใช้ในการบีบอัดไฟล์มีชื่อว่า อัลกอริทึม “LZ77” และ “Huffman coding” ซึ่งจะทำงานร่วมกันทั้งสองเพื่อบีบอัดไฟล์ที่สูงที่สุดเป็นอัลกอริทึมที่ใช้บีบ ‘ตัวหนังสือ’

หลักการทำงานของอัลกอริทึม LZ77

Abraham Lempel และ Jacob Ziv ได้ทำการคิดค้น อัลกอริทึม LZ77 เพื่อใช้บีบอัดข้อมูลโดยใช้หลักการแทนที่ “คำ” ที่ซ้ำกัน ด้วย “คีย์เวิร์ด” ขนาดเล็ก เพื่อใช้แทนคำนั้น เมื่อในปี ค.ศ. 1977 (พ.ศ. 2520)

ตัวอย่างการทำงานของอัลกอริทึม LZ77

ข้อมูลต้นฉบับ (ก่อนการเข้ารหัส) : กกกขขขขขคคคค

จากข้อมูลข้างต้น หากนับจำนวนอักษรที่ซ้ำกัน จะได้รับค่าออกมาดังต่อไปนี้

  • ตัวอักษร “ก” มี 3 คำ
  • ตัวอักษร “ข” มี 5 คำ
  • ตัวอักษร “ค” มี 4 คำ

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