ดาวน์โหลดโปรแกรมฟรี
       
   สมัครสมาชิก   เข้าสู่ระบบ
THAIWARE.COM | ทิปส์ไอที
 

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก : https://www.freepik.com/free-vector/file-bundle-concept-illustration_7741852.htm
เมื่อ :
|  ผู้เข้าชม : 18,727
เขียนโดย :
0 %E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%9A%E0%B8%B5%E0%B8%9A%E0%B8%AD%E0%B8%B1%E0%B8%94%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C+%E0%B8%A1%E0%B8%B5%E0%B8%AB%E0%B8%A5%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B2%E0%B8%A3+ZIP+%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C+%E0%B9%80%E0%B8%9E%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%86+%E0%B8%A1%E0%B8%B5%E0%B8%82%E0%B8%99%E0%B8%B2%E0%B8%94%E0%B9%80%E0%B8%A5%E0%B9%87%E0%B8%81%E0%B8%A5%E0%B8%87%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
A- A+
แชร์หน้าเว็บนี้ :

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ ให้มีขนาดเล็กลงได้อย่างไร ?

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

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

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

เนื้อหาภายในบทความ

การบีบอัดข้อมูลมีหลักการทำงานอย่างไร ?

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

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

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

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

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

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

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

  • ตัวอักษร "A" มี 3 คำ
  • ตัวอักษร "B" มี 5 คำ
  • ตัวอักษร "C" มี 4 คำ 

และเมื่อเข้ารหัสด้วยคีย์เวิร์ดแล้ว ผลลัพธ์ก็จะออกมาเป็น

ข้อมูลที่ถูกบีบอัดแล้ว (หลังการเข้ารหัส) : A3B5C4

โดยหากมีคีย์เวิร์ดที่ซ้ำกัน ก็จะไม่สร้างคีย์เวิร์ดซ้ำนะครับ แต่จะใช้วิธีลิงก์กลับไปที่หน่วยความจำเดิมแทน ดังโครงสร้างด้านล่างนี้

A  [1] [2] [3] B [1] [2] [3] [4] [5] C [1] [2] [3] [4]
|__/__/__/    |__/__/__/__/__/   |__/__/__/__/

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

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?

ไฟล์ต้นฉบับเดิมมีขนาด 492 KB. แต่เมื่อผมทำการบีบอัดไฟล์ ขนาดไฟล์เหลือเพียง 2.54 KB. เท่านั้น ขนาดไฟล์เล็กลงประมาณ 194 เท่า (194x) เลยทีเดียว

ทั้งนี้ ตัวอย่างนี้มันค่อนข้างเรียบง่ายนะครับ เพราะมีคำที่ซ้ำกันอยู่ค่อนข้างเยอะ ซึ่งข้อความในไฟล์จริงจะมีรูปแบบคำที่หลากหลายกว่านี้มาก อย่างไรก็ตาม โดยปกติแล้ว การบีบอัดไฟล์ข้อความ เราก็จะสามารถลดขนาดไฟล์ไปได้ประมาณ 30-40% อยู่ดี 

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?

เกร็ดความรู้น่าสนใจ

การบีบอัดไฟล์ทั่วๆ ไปจะมีอยู่ 2 ชนิดหลักๆ ด้วยกันคือ

  1. Lossless Compression : ไฟล์ที่ถูกบีบอัด สามารถถอดรหัสกลับไปเป็นเหมือนไฟล์ต้นฉบับได้เหมือนเดิมทุกประการ 100% ไม่มีการสูญเสียคุณภาพไฟล์ 
  2. Lossy Compression : การบีบอัดที่เมื่อถอดรหัสแล้ว คุณภาพไฟล์ลดต่ำลงกว่าไฟล์ต้นฉบับ

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

การเข้ารหัสแบบฮัฟแมนนั้นถือเป็นการเข้ารหัสที่ช่วยในการบีบอัดข้อมูลซึ่งไม่ทำให้เกิดการสูญเสียข้อมูลและมีประสิทธิภาพสูง โดยเป็นการเข้ารหัสประเภทเอนโทรปี

เอนโทรปี หรือ Entropy ที่หากใช้ในเรื่องของทฤษฎีข้อมูลจะหมายถึงหน่วยวัดที่บอกถึงความแตกต่างและความเหมือนกันของชุดข้อมูลนั้น ๆ ว่ามีความแตกต่างหรือเหมือนกันมากน้อยแค่ไหน

การเข้ารหัสแบบ Huffman นั้นถูกคิดค้นขึ้นโดย David A. Huffman ในปีพ.ศ.2494 (ค.ศ.1951) และเพื่อนร่วมชั้นเรียนวิชาทฤษฎีข้อมูลที่สถานบันเทคโนโลยีแมสซาชูเซตส์ (MIT) โดยอาจารย์ได้ให้ทางเลือกกับนักเรียนว่าสามารถทำรายงานส่งในชั้นเรียนแทนการสอบปลายภาคได้

ซึ่ง Huffman ก็ตัดสินใจเลือกที่จะทำรายงานส่งในหัวข้อการหารหัสไบนารีที่มีประสิทธิภาพมากที่สุด Huffman เกือบจะถอดใจเลิกทำรายงานชิ้นนี้แล้ว และไปเตรียมอ่านหนังสือสอบแทน แต่สุดท้ายเขาก็เกิดไอเดียที่จะใช้แผนภูมิต้นไม้สองทางแบบเรียงความถี่ (Frequency-Sorted Binary Tree) ขึ้นมาได้ จนเกิดเป็นการเข้ารหัสแบบไบนารี่ที่สามารถนำมาประยุกต์ใช้เพื่อบีบอัดข้อมูลได้อย่างมีประสิทธิภาพ

วิธีการของ Huffman นั้นเริ่มจากการหาค่าความเหมือนและต่างกันของข้อมูลในชุดข้อมูล ๆ หนึ่ง (เอนโทรปี) และนำชุดข้อมูลที่เหมือนกันมารวมกันไว้เพื่อนับจำนวนความถี่ที่เกิดขึ้นของชุดข้อมูลที่เหมือนกันนั้น

ตัวอย่างการทำงานของอัลกอริทึม Huffman Coding (ตัวอย่างแรก)

ตัวอย่างคำ : ESSENTIAL

คำว่า “ESSENTIAL” จะมีตัวอักษร E อยู่ 2 ตัวอักษร, มีตัวอักษร S อยู่ 2 ตัวอักษร และตัวอักษร N T I A L อยู่อย่างละ 1 ตัวอักษร

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

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?

หลังจากนั้นก็ทำการกำหนดให้กิ่งของแต่ละคู่มีค่าเท่ากับ 0 และ 1 อย่างละข้าง เท่านี้เราก็สามารถได้ชุดรหัสไบนารี่สำหรับตัวอักษรที่ช่วยประหยัดพื้นที่ในการจัดเก็บได้ดีขึ้น เช่นตัวอักษร E มีความถี่ใช้บ่อยสุด จะถูกแทนด้วยรหัสไบนารี่แค่สองหลักเท่านั้นคือ E = 01 ส่วนตัวอักษรที่ถูกใช้น้อยที่สุดจะใช้รหัสไบนารี่จำนวนสามและสี่หลักเช่นตัว N = 000 หรือ A =101 เป็นต้น

จากตัวอย่างข้างต้นจะเห็นได้ว่าหากเราเข้ารหัสชุดตัวอักษร ESSENTIAL เป็นรหัสไบนารี่แบบ ASCII ที่มีขนาด 8 บิต ที่ถูกใช้เป็นมาตราฐานการเข้ารหัสทั่วไปจะต้องใช้พื้นที่ในการจัดเก็บเท่ากับ 9 * 8 = 72 บิต แต่หากนำมาเข้ารหัสแบบ HUFFMAN แล้วจะเหลือพื้นที่ที่ใช้ในการจัดเก็บเท่ากับ 26 บิต เท่านั้น

ตัวอย่างการทำงานของอัลกอริทึม Huffman Coding (ตัวอย่างที่สอง)

มาลองดูอีกสักตัวอย่าง เป็นการใช้ Huffman Coding กับข้อความ

ตัวอย่างคำ : "A_DEAD_DAD_CEDED_A_BAD_BABE_A_BEADED_ABACA_BED"

ในขั้นตอนที่ 2. ถึง 6. ตัวอักษรจะถูกจัดเรียงตามความถี่ที่เพิ่มขึ้น และสองตัวที่มีค่าความถี่น้อยที่สุดในแต่ละขั้นตอนจะถูกนำมารวมกัน แล้วเพิ่มกลับเข้าไปในรายการข้อมูลอีกครั้งหนึ่ง เพื่อสร้างต้นไม้ขึ้นมา โดยต้นไม้ต้นสุดท้ายในขั้นตอนที่ 6. จะถูกข้ามไปเพื่อใช้เป็นพจนานุกรมสำหรับอ้างอิง และในขั้นตอนที่ 7. และ 8. จะเป็นการเข้ารหัสข้อความ

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://en.wikipedia.org/wiki/Huffman_coding#Example

การบีบอัดไฟล์ภาพ (Image Compression)

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

ขอตัวอย่างง่าย ๆ กับไฟล์รูปภาพ ไฟล์ RAW เป็นไฟล์แบบ Lossless บันทึกกี่ครั้ง คุณภาพก็ยังเท่าเดิม แต่ JPEG เป็นไฟล์แบบ Lossy ทุกครั้งที่คุณบันทึกซ้ำไฟล์จะคุณภาพแย่ขึ้นเรื่อย ๆ ลองดูตัวอย่างการบันทึกไฟล์ JPEG ซ้ำ ๆ ได้จากวิดีโอด้านล่างนี้ จะเห็นได้ว่าคุณภาพมันแย่ขึ้นได้มากขนาดไหนอย่างชัดเจน


วิดีโอจากช่อง https://www.youtube.com/channel/UC3p46mKA5eA435Lm7XzSlNg

ประเภทไฟล์ภาพ, วิดีโอ และเสียง ที่เรานิยมใช้งานกันประจำ

ไฟล์ภาพ (Image Files)

  • Lossless : RAW, BMP และ PNG
  • Lossy : JPEG และ GIF

ไฟล์วิดีโอ (Video Files)

  • Lossless : MKV และ WMV
  • Lossy : MP4 และ HEVC

ไฟล์เสียง (Audio Files)

  • Lossless : FLAC, AIFF และ WAV
  • Lossy : MP3 และ HEVC

JPEG ลดขนาดไฟล์รูปได้อย่างไร ?

ในที่นี้เราขอยกตัวอย่างการบีบอัดไฟล์ภาพของ JPEG ละกัน

ไฟล์ JPEG เป็นรูปแบบตระกูลของไฟล์รูปภาพ ที่มีมาอย่างยาวนาน เปิดตัวครั้งแรกในปี ค.ศ. 1992 (พ.ศ. 2535) พัฒนาโดยกลุ่ม Joint Photographic Experts Group (ย่อได้ว่า JPEG นั่นเอง) ด้วยความสามารถในการบีบอัดไฟล์รูปให้มีขนาดเล็กลงจากเดิมหลายเท่า ทำให้มันได้รับความนิยมสูงมากมาจนถึงปัจจุบัน

การบีบอัดไฟล์ของ JPEG อาศัยประโยชน์จากการรับรู้ของมนุษย์ มันสามารถบีบอัดไฟล์ได้ที่อัตรา 1:10 โดยที่ผู้ชมจะแทบไม่รู้สึกถึงความแตกต่างเลย (ความจริงสามารถบีบอัดเพื่อลดขนาดได้มากกว่านั้นอีก แต่คุณภาพก็จะแย่ตามไปด้วย)

โดยหลักการคร่าวๆ ของไฟล์รูปภาพตระกูล JPEG นี้จะใช้การเฉลี่ยค่าสีจากพิกเซลที่อยู่ใกล้เคียงกัน เพื่อลดปริมาณข้อมูลที่ใช้ในการสร้างภาพ โดยภาพจะถูกซอยแบ่งออกเป็นกลุ่มแบบ 8 x 8 แต่ละกลุ่มก็จะประกอบไปด้วยพิกเซลจำนวน 64 พิกเซล แต่ละพิกเซลก็จะมีการบรรจุค่าสีตั้งแต่ 0-255 (อ่านเรื่องระบบสี ว่าทำไมถึงมีค่าเท่ากับ 255 ได้ที่นี่)

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://www.dspguide.com/ch27/6.htm

จากนั้นข้อมูลจะถูกลดขนาดโดยใช้ฟังก์ชัน Discrete Cosine Transform (DCT) เข้ามาช่วย ซึ่งการทำแบบนี้จะทำให้ค่าสัมประสิทธิ์ในข้อมูลลดลง แถมยังมีแนวโน้มที่อาจจะลดได้ถึงค่า 0 เป็นจำนวนมาก

ซึ่งสมมติว่าข้อมูลกลายเป็น "0 0 0 0 0 0 0 0 0 0" แล้ว เราก็จะจัดเก็บมันอยู่ในรูปแบบ "10x0" แทนได้ ซึ่งนั่นก็จะลดขนาดไฟล์ลงไปได้อีกเยอะ

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?

ข้อมูลที่ถูกแปลงโดย DCT มาแล้ว ค่าสัมประสิทธิ์ที่ได้ก็จะนำไปอ้างอิงกับ Quantization tables (ตารางข้อมูลเลขจำนวนเต็ม (Integer)) อีกครั้งหนึ่ง

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://www.robertstocker.co.uk/jpeg/jpeg_new_10.htm

ขั้นตอนทั้งหมดที่เกิดขึ้นก็จะเป็นไปตามกระบวนการดังภาพด้านล่างนี้ครับ

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://www.edn.com/baseline-jpeg-compression-juggles-image-quality-and-size/

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

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
 ภาพจาก https://photography.tutsplus.com/tutorials/save-for-web-better-jpeg-compression-with-adobe-photoshop--cms-23080

การบีบอัดไฟล์วิดีโอ (Video Compression)

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

เทคนิคนี้เรียกว่า "Interframe compression" ที่จะอาศัยการคำนวณความเปลี่ยนแปลงของวิดีโอแต่ละเฟรม และเก็บข้อมูลเฉพาะเฟรมที่ต้องการ ตัวอย่างเช่น ถ้ามีฉากที่การแช่มุมกล้องเดิมทิ้งเอาไว้ มันก็ไม่จำเป็นต้องเก็บข้อมูลเฟรมเหล่านั้นไว้

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://www.bhphotovideo.com/explora/video/tips-and-solutions/compression-a-basic-understanding

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


วิดีโอจาก https://www.youtube.com/channel/UCazm62dK5bpugSPHzLgvtew

อย่างไรก็ตามวิดีโอบน YouTube มันถูกบีบอัดมาแล้วก่อนที่จะสตรีม ถ้าอยากเห็นผลความแตกต่างของ Bitrate ที่มีต่อคุณภาพวิดีโออย่างชัดเจน ลองดาวน์โหลดตัวอย่างวิดีโอเปรียบเทียบมาเปิดดูบนคอมพิวเตอร์ได้ที่ลิงก์ https://jell.yfish.us/ ครับ

การบีบอัดไฟล์เสียง (Audio Compression)

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

ไฟล์เสียงแบบ Lossless มีขนาดที่ค่อนข้างใหญ่ เพลงความ 3:44 นาที แบบ Lossless จะใหญ่ได้ถึง 86 MB ในขณะที่ไฟล์แบบ Lossy จะอยู่ที่ 5-9 MB เท่านั้น ขึ้นอยู่กับ Bitrate ที่เลือกใช้งาน 

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://ledgernote.com/blog/q-and-a/how-does-mp3-compression-work/

ไฟล์เสียง MP3 ลดขนาดไฟล์ได้อย่างไร ?

ถ้าพูดถึงไฟล์เสียงแบบบีบอัดแล้วล่ะก็ ไฟล์นิยมมากที่สุดก็ต้องยกให้ MP3 

หลักการทำงานของ MP3 นั้นคิดค้นขึ้นมาโดยวิเคราะห์จากคุณสมบัติในการที่สมองวิเคราะห์การรับรู้เสียงของมนุษย์ ด้วยจิตสวนศาสตร์ (Psychoacoustics) อย่างเช่น

  • มันมีเสียงที่หูของมนุษย์ไม่ได้ยินอยู่
  • มีเสียงบางรูปแบบที่หูมนุษย์รับรู้ได้ชัดเจนกว่าเสียงอื่น
  • หากมีเสียงสองเสียง เกิดขึ้นพร้อมกัน เราจะได้ยินเสียงที่ดังกว่า และไม่ได้ยินเสียงที่เบากว่า

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://stuff.dewsoftoverseas.com/bmp3.htm

นอกจากนี้ หูของมนุษย์มีพิสัยการได้ยินเสียงสูงสุดที่ประมาณ 24 kHz และเมื่อเรามีอายุมากขึ้นก็จะเริ่มลดลงเหลือที่ประมาณ 16-18 kHz เท่านั้น ดังนั้น แทนที่เราจะเก็บข้อมูลเสียงทั้งหมดที่เกิดขึ้น MP3 เลือกที่จะตัดข้อมูลเสียงส่วนเกินที่มนุษย์ ไม่ได้ยินออกไปซะเลย ซึ่งเทคนิคนี้ลดขนาดไฟล์ลงได้อย่างมหาศาล

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
ภาพจาก https://freemp3wmaconverter.com/blog/best-way-to-convert-mp3-to-other-audio-formats/

 

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

โปรแกรมบีบอัดไฟล์ มีหลักการ ZIP ไฟล์ เพื่อทำให้ไฟล์ต่างๆ มีขนาดเล็กลงได้อย่างไร ?
 ภาพจาก https://ledgernote.com/blog/q-and-a/how-does-mp3-compression-work/

อีกส่วนที่ MP3 ใช้ในการลดขนาด ก็คือการลดขนาด บิตเรตไฟล์เสียงแบบ Lossless นั้นจะมีบิตเรต (Bitrate) อยู่ที่ระดับ 24 บิต ส่วน MP3 เป็น Lossy จะมี บิตเรตอยู่ที่ 16 บิต ซึ่งแม้จะเป็น Lossy แต่มันก็มากพอที่จะไม่ลดคุณภาพเสียงให้ต่ำลง และการลดบิตเรต นี้ก็ช่วยลดขนาดไฟล์ไปได้ถึง 25% 

ยังคงมีอีกเทคนิคที่ MP3 ใช้ในการลดขนาดไฟล์ นั่นคือการลดความถี่ Sample Rates ลง จากเดิมที่สูงสุด 96 kHz ใน MP3 จะอยู่ที่ 44.1 kHz เท่านั้น ที่ช่วยให้ลดขนาดไฟล์ได้อีกประมาณ 50%

Sample rates นั้น เปรียบได้กับ Frame per Second (FPS) ในวิดีโอ แต่อันนี้เป็นเสียงเท่านั้นเอง เกมที่เราเล่นส่วนใหญ่ก็จะอยู่ที่ 60 FPS แต่รู้หรือไม่ว่าภาพยนตร์เกือบทุกเรื่องฉายที่ 24fps เท่านั้น (หนังเรื่อง The Hobbit มีฉายที่ 60 FPS นะ) แต่เราก็ไม่รู้สึกว่ามันแย่ใช่ไหมล่ะ MP3 ก็ทำแบบนั้นแหละกับ Sample Rates


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


ที่มา : www.netmotionsoftware.com , www.winzip.com , www.howtogeek.com , en.wikipedia.org , sites.google.com , michaeldipperstein.github.io , www.ncta.com , en.wikipedia.org , brilliant.org , en.wikipedia.org , th.wikipedia.org , th.wikipedia.org , en.wikipedia.org , support.shutterstock.com , www.dspguide.com , www.image-engineering.de , ledgernote.com , stuff.dewsoftoverseas.com

0 %E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%9A%E0%B8%B5%E0%B8%9A%E0%B8%AD%E0%B8%B1%E0%B8%94%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C+%E0%B8%A1%E0%B8%B5%E0%B8%AB%E0%B8%A5%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B2%E0%B8%A3+ZIP+%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C+%E0%B9%80%E0%B8%9E%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%86+%E0%B8%A1%E0%B8%B5%E0%B8%82%E0%B8%99%E0%B8%B2%E0%B8%94%E0%B9%80%E0%B8%A5%E0%B9%87%E0%B8%81%E0%B8%A5%E0%B8%87%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
แชร์หน้าเว็บนี้ :
Keyword คำสำคัญ »
เขียนโดย
ระดับผู้ใช้ : Admin    Thaiware
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ
 
 
 

ทิปส์ไอทีที่เกี่ยวข้อง

 


 

แสดงความคิดเห็น