นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

8332
Ico64
นาย จักสิทธิ์ โอฬาริกชาติ
นักวิชาการศึกษา
คณะศิลปศาสตร์ มหาวิทยาลัยสงขลานครินทร์
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 0

อ่าน: 5538
ความเห็น: 3

การบีบอัดข้อมูล

การบีบอัดข้อมูล (data compression) เป็นกระบวนการเข้ารหัสข้อมูลเพื่อให้ใช้จำนวนบิตในการเก็บข้อมูลน้อยลงกว่าเดิม (ไม่ใช่เพื่อรักษาความลับ) ตรงนี้ที่ใช้คำว่าเข้ารหัสเพราะข้อมูลต้นฉบับกับข้อมูลที่ได้หลังจากบีบอัดแล้วมันจะต่างไปจากเดิม ซึ่งตามจุดประสงค์เดิมของการเข้ารหัสนั้นเพื่อรักษาความลับของข้อมูลข่าวสาร แต่ในกรณีการบีบอัดนั้นมีจุดประสงค์หลักเพื่อให้ขนาดของข้อมูลที่เก็บมีขนาดลดลง

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

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

การบีบอัดแบบ Lossless กับแบบ Lossy
การบีบอัดข้อมูลแบบ Lossless
อาศัยหลักการที่ว่าปกติข้อมูลที่ใช้อยู่มักจะมีข้อมูลที่ซ้ำกัน เช่น คำในภาษาอังกฤษมักพบอักษร 'e' ได้บ่อยกว่า 'z' และความเป็นไปได้ที่อักษร 'q' จะตามด้วย 'z' มีน้อยมากๆ ยกตัวอย่างแบบนี้อาจไม่เห็นภาพว่าจะลดข้อมูลได้อย่างไร ผมขอยกตัวอย่างแบบที่ผมคิดเองดีกว่าอย่างในภาษาอังกฤษในบทความหรือหนังสือเล่มหนึ่งจะปรากฏคำว่า the อยู่บ่อยมาก สมมติเราให้เก็บอักษร t แทน the หรืออาจใช้วิธีเก็บตำแหน่งที่ปรากฎคำนั้นๆแทน ก็สามารถลดความยาวข้อมูลที่จะเก็บได้ (อันนี้แค่ยกตัวอย่างให้เห็นแนวคิดแต่จริงๆ algorithm ที่ใช้บีบอัดอาจกระทำกันในระดับบิตเลยนะครับ) จะเห็นว่าการบีบอัดข้อมูลแบบนี้ ข้อมูลต้นฉบับกับข้อมูลที่บีบอัดแล้วคลายออกมาจะเหมือนกันไม่ผิดเพี้ยน

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

ยกตัวอย่างง่ายๆเพื่อเทียบการบีบอัดข้อมูลแบบ lossless กับ lossy เช่น 25.888888888 อาจบีบอัดให้เหลือ 25.[9]8 (9 ในปีกกาหมายถึงมี 8 จำนวน 9 ตัว) ซึ่งสามารถแปลงกลับเป็นข้อมูลเดิมได้ไม่ผิดเพี้ยน (lossless) ในขณะที่ถ้าหากสามารถยอมรับได้ว่าข้อมูลผิดเพี้ยนไปบ้างก็ไม่เป็นไรก็อาจบีบอัดให้เหลือ 26 ซึ่งจะเห็นว่าประหยัดพื้นที่การเก็บข้อมูลได้เยอะกว่า แต่ขณะเดียวกันข้อมูลจะไม่เหมือนเดิมเสียทีเดียว (lossy)

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

algorithm ที่นิยมใช้ในการบีบอัดแบบ lossless คือ Lempel-Ziv (LZ) และ DEFLATE ซึ่งพัฒนาต่อจาก LZ เพื่อให้บีบอัดข้อมูลได้มากขึ้นและคลายข้อมูลออกมาได้เร็วขึ้น แต่ขณะเดียวกันก็เสียเวลาในการบีบอัดมากขึ้นอีกหน่อย (ไม่มีอะไรที่ได้มาฟรีๆ) DEFLATE ถูกใช้ใน PKZIP, gzip และ PNG (ดังๆทั้งนั้นนะครับ PKZIP เป็นโปรแกรมบีบอัดแรกๆเลยที่ได้รับความนิยม คนมีอายุหน่อยจะรู้ อิอิ gzip ก็เช่นกันแต่ใช้ในระบบ unix ส่วน PNG เป็นรูปแบบไฟล์ภาพ) algorithm ที่ควรจะกล่าวถึงอีก คือ LZW (Lempel-Ziv-Welch) ซึ่งใช้ในไฟล์ภาพ GIF และที่รู้จักกันดีอีกตัว(ใครรู้จักหว่า) คือ LZR (LZ-Renau)

วิธีการบีบอัดแบบ LZ ต่างๆ ที่กล่าวมาใช้หลักการบีบอัดแบบ table-based compression model ซึ่งข้อมูลในตารางจะแทนค่าตัวอักษรหรือข้อมูลที่ซ้ำกัน โดยส่วนใหญ่ตารางนี้จะถูกสร้างขึ้นมาจากข้อมูลที่รับเข้าไป อีกรูปแบบของ LZ ที่ใช้ได้ดี คือ LZX ซึ่งถูกใช้ในไฟล์ CAB ของไมโครซอฟต์

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ Copyright
สร้าง: 12 กุมภาพันธ์ 2551 11:12 แก้ไข: 21 มิถุนายน 2552 14:39 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

Ico48
mbunsong (ความเคลื่อนไหวล่าสุด)
12 กุมภาพันธ์ 2551 12:32
#20050

พูดถึงการบีบอัดข้อมูลทำให้คิดถึงสมัยก่อน 10 กว่าปี มาแล้ว ยังใช้แผ่น disk ขนาด 3.5 นิ้วกันอยู่ ยังชอบโปรแกรม pkzip และ pkunzip อยู่เลย สมัยนั้น มันเป็นอะไรที่อัศจรรย์มากๆ ครับ ... การสั่งงานผ่านที่ dos คำสั่งจะมีประมาณว่า

การย่อไฟล์
c:\> pkzip ชื่อไฟล์ที่ต้องการย่อ  ที่เก็บปลายทาง

การขยายไฟล์
c:/> pkunzip  ชื่อไฟล์ที่ย่อไว้

จำได้คร่าวๆ ลืมหมดแล้ว สมัยนี้ การย่อไฟล์ง่ายมาก แค่ลัดนิ้วมือ ... เราจะได้มาแล้ว แถบการ Copy และ ขยายไฟล์ ยังง่ายสุดๆ ด้วย 

Ico48
pumpui [IP: 125.27.55.247]
21 ธันวาคม 2551 09:14
#39344

ขอรบกวนถามว่า

 พอจะมีข้อมูลการบีบอัดข้อมูลแบบลงลึก

ขั้นการเข้ารหัส หรือเปล่าค่ะ

1.การบีบอัดข้อมูลแบบ Lossy

2.การบีบอัดข้อมูลแบบLosess

ถ้ามี ช่วยกรุณาส่งเมลล์มาให้หน่อยนะค่ะ

 

ขอบคุณล่วงหน้าค่ะ

ตอนนี้สนใจศึกษาเรื่องนี้อยู่ค่ะ

Email:pumpui_foto@hotmail.com

Ico48
นางสาวไพรัตน์ สังข์ฤทธิ์ [IP: 203.172.175.226]
05 มกราคม 2553 11:03
#52727
ทำไมต้องบีบอัดข้อมูล

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 34.228.143.13
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ