สวัสดีครับ นานๆจะเอาเรื่องดีๆมาฝากกันไว้เป็นเกร็คความรู้ต่างๆ
เคยสงสัยกันบ้างเปล่าว่า พวกโปรแกรม winzip winrar หรือแม้แต่โปรแกรม แปลงไฟล์เป็น mp 3 ทำ
งานกันอย่าไร
ตันแบบการทำงานพวกโปรแกรมได้นำหลักการมาจาก รหัสมอร์ส (โทรเลข)ที่ถูกคันคิดใน ปี 1838 ในปี 1940 จึง
ได้มี ทฤษฏี การบีบอัดข้อมูลเกิดขึนและมีการปรับปรุงเรื่อยมาจนในปี 1951 David Huffman ได้คันพบวิธี
การบีบอัดข้อมูลที่ดีกว่าเดิมโดยแทนที่ใช่รหัสแทนที่ข้อความยาวๆ อีก 26 ปีต่อมาในปี 1977 นาย Abraham
lempel และ Jacob Ziv พร้อม นาย Terry Welch ได้นำเสนอวิธีการเข้ารหัสข้อมูลโดยอาศัย
การช๊ หรือ pointer ในโปรแกรมคอมพิวเตอร์ ที่เราเรียกกระบวกการนีว่า LZW Algorithm เพื่อเป็น
เกียรตืแก่เขาทั้งสาม กระบวกการบีบอัดข้อมูลนี้ต่อมาถูกนำมาใช่ในโปรแกรมคอมพิวเตอร์ยุคแรกๆ เช่นโปรแกรม PKZIP
ข้อสังเกต
การเขียนโปรแกรมการคิดคันต่างๆต้องมีการคิด ทฤษฎี ก่อนว่าทำได้รึไม่โดยนำหลักการการทำงานต่างๆเป็นหัวข้อและหาคำ
ตอบออกมาต้องมีการทดลองซ้ำๆอยู่หลายเที่ยวถึงจะประกาศ ทฤษฏี การประการใช่ว่าจะได้รับการยอมรับเลยต้องผ่านกระบวก
การตรวจก่อนจนแน่ใจจนไม่ข้อผิดพลายถึงจะประกาศยอมรับ ทฤษฏี
หลักการบีบอัดข้อมูล
การหาข้อมูลที่ซ้ำๆกันในไฟล์[/color]
ในแฟ้มข้อมูลรึเอกสาร มักจะมีข้อความซ้ำกันอยู่ โปรแกรมเหล่าจะมองหาข้อมูลมทีอัษขระซ้ำๆ หรือข้อความซ้ำๆกันและ
พยายามแทนที่ด้วยรหัส หรือกำจัดออกแทนที่ไว้ด้วยพอยต์เตอร์ เรามาดูตัวอย่าครับ เป็นประโยชน์ของ จอห์น เอฟ.เคเนดี
กล่าวในปี 1961 เป็นสุทรพจน์ที่นิยมและนำมาใช่ในปัจจุบัน ( อมตะจริงๆประโยชน์นียังใช่หากินได้อีกหลายปี )
" Ask not wkat you can do you -- ask what you can do for
you country." ( แปลงเอาเองนะง่ายๆ )
จากประโยชน์ ดังกล่าว หากนำไปผ่านกระบวกการบีบอัดข้อมูล โปรแกรมก็จะทำการวิเคราะหาความวำซ้อนก่อนจะได้ว่า
ประโยชน์นีมีทั้งหมด 17 คำ
ประกอบด้วยอัขระ 61 ตัว
มีช่องว่าง 16 ที่
มีขีด ( dash ) และจุดฟุตสตอปอย่าละ 1
ถ้ามีการบันทึกลงใน ดิสก์จะใช่เนื้อที่ 79 หน่วย ดังนั้นเราจะลดพื้นที่และขนาด เราจะต้องหาคำที่มีความซ้ำซ้อน
1. ask มี 2 คำ
2. you มี 2 คำ
3. can มี 2 คำ
4. for มี 2คำ
5. what มี 2คำ
6. country มี 2 คำ
7. do มี 2 คำ
8. your มี 2 คำ
จากจุดนีโปรแกรมจะยึดเอาจุดซ้ำกันและไม่ซ้ำกันของประโยชน์ทั้งหมด และ นำไปสร้าง ดิกชันนารีเฉพาะก็จะได้ 1.ask
2.what 3.your 4.countery
5.can 6. do 7. for 8.you
แล้วทำการเขียนประโยชน์ข้อความเราใหม่ เป็น "1 not 2 3 4 5 6 7 8 --1 2 8 5 6 7
3 4" จากนั้นบันทึกข้อมูลลงใยดิกชันนารี และข้อความใหม่ลงไปด้วย
จากเหตุผลข้างตัน ทำให้เราเข้าใจว่า โปรแกรมจะทำการข้อมูลซ้ำๆและแทนที่ด้วยรหัดใหม่ลงแทนที่จะลงเต็มก็จะลดจำนวน
ลงทำให้ไฟล์ที่บีบอัดมีขนาดเล็กลงไป