การจัดเก็บข้อมูลและการบีบอัด
แนะนำใหม่| English | ความหมาย |
|---|---|
| compression/kəmˈpreʃn/ | การบีบอัด |
| kibibyte/ˈkɪbɪbaɪt/ | กิบิไบต์ |
| lossless/ˈlɒsləs/ | แบบไม่สูญเสียข้อมูล |
| run-length encoding/rʌn leŋθ enˈkəʊdɪŋ/ | การเข้ารหัสแบบความยาวของชุด |
| lossy/ˈlɒsi/ | แบบสูญเสียข้อมูล |
การบีบอัดไฟล์ให้เล็กลง
- การจัดเก็บข้อมูลวัดด้วยหน่วยที่เพิ่มขึ้นทีละขั้นโดย 1024
- เราสามารถ คำนวณ ขนาดของไฟล์ภาพหรือเสียงได้
- Compression จะทำให้ไฟล์เล็กลง
การวัดหน่วยความจำ
- bit (0/1 หนึ่งตัว) · nibble (4 bits) · byte (8 bits).
- จากนั้นแต่ละหน่วยจะมีค่าเป็น 1024× ของหน่วยก่อนหน้า (เนื่องจาก $1024 = 2^{10}$): kibibyte (KiB) = 1024 bytes, mebibyte (MiB) = 1024 KiB, gibibyte (GiB) = 1024 MiB, tebibyte (TiB) = 1024 GiB.
- ต้องหารด้วย 1024 เสมอ (ไม่ใช่ 1000) เมื่อเปลี่ยนขึ้นเป็นหน่วยที่ใหญ่กว่า

คอมพิวเตอร์แสดงข้อมูลทั้งหมดในรูปแบบไบนารี —一串ยาวของ 0 และ 1.
1 กิโลไบต์ (KiB) มีไบต์ทั้งหมดกี่ไบต์?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
1 KiB = 1024 bytes (แต่ละหน่วยจัดเก็บเพิ่มขึ้นทีละ 1024 = 2^10).
จับคู่แนวคิดการจัดเก็บ/การบีบอัดแต่ละรายการกับความหมาย
Difficulty 2/5 · 140 coins + a small bonus on first completion today
ขนาดไฟล์เพิ่มขึ้นตามรายละเอียด; การบีบอัดทำให้เล็กลง ทั้งแบบไม่สูญเสียและแบบสูญเสียข้อมูล
การคำนวณขนาดไฟล์
- ภาพ (bits) $=$ ความกว้าง × ความสูง × ความลึกสี
- เสียง (bits) $=$ อัตราการสุ่มตัวอย่าง × ความละเอียดการสุ่มตัวอย่าง × เวลาเป็นวินาที
- หารด้วย 8 เพื่อแปลงเป็น bytes, แล้วหารด้วย 1024 เพื่อแปลงเป็น KiB, หารอีกครั้งเพื่อแปลงเป็น MiB
- เช่น $1024 \times 1024$ ที่ 16 bpp $= 16\,777\,216$ bits $= 2$ MiB.
ภาพมีขนาด 100 × 100 พิกเซลด้วยความลึกของสี 24 บิต ขนาดเป็นบิตเท่าไร?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
ความกว้าง × ความสูง × ความลึกของสี = 100 × 100 × 24 = 240 000 บิต.
การบีบอัดข้อมูล
- Lossless compression ทำให้ไฟล์เล็กลงโดยที่ ไม่มีการสูญเสียถาวร — สามารถสร้างข้อมูลต้นฉบับกลับมาได้เหมือนเดิม Run-length encoding (RLE) เก็บชุดซ้ำซ้อนไว้เพียงครั้งเดียว (เช่น
WWWWWWWW→ "8 W"). - Lossy compression ทำให้ไฟล์ เล็กมาก โดย กำจัดข้อมูลออกอย่างถาวร (ลดความละเอียด/อัตราสุ่มตัวอย่าง)
- ใช้ lossless สำหรับข้อความและไฟล์โปรแกรม; lossy สำหรับภาพถ่าย เพลง และวิดีโอ

Run-length encoding เก็บชุดซ้ำซ้อนไว้เพียงครั้งเดียว ในรูปของคู่ (จำนวน, ค่า): 8 W, จากนั้น 4 R.
การเข้ารหัสแบบ Run-length ลดทอนค่าซ้ำ
การบีบอัดทำให้ไฟล์เล็กลง การเข้ารหัสแบบ Run-length แทนชุดค่าซ้ำด้วยค่าหนึ่งบวกกับจำนวน — ไม่สูญเสียข้อมูล และดีที่สุดเมื่อข้อมูลมีชุดซ้ำยาว
การบีบอัดแบบไม่สูญเสียข้อมูล (Lossless compression):
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Lossless เก็บข้อมูลทั้งหมด (เช่น RLE); Lossy ทิ้งข้อมูลบางส่วนไปถาวร
การเข้ารหัสแบบ Run-length (RLE) บีบอัดข้อมูลโดย:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
RLE แทนชุดซ้ำเช่น WWWWWWWW ด้วย "8 W" — ดีมากเมื่อข้อมูลมีการซ้ำหลายครั้ง
การบีบอัดแบบสูญเสียข้อมูล (Lossy compression) เหมาะที่สุดสำหรับ:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Lossy เหมาะสำหรับสื่อที่การสูญเสียคุณภาพเล็กน้อยทำให้ไฟล์เล็กลงมาก; ข้อมูลที่แม่นยำต้องใช้ Lossless
คุณเข้าใจแล้ว
- หน่วยความจำเพิ่มขึ้นทีละ 1024 (KiB, MiB, GiB, TiB)
- ขนาดภาพ = ความกว้าง × ความสูง × ความลึกสี (bits); เสียง = อัตรา × ความละเอียด × วินาที
- lossless = ฟื้นฟูได้ครบถ้วน (RLE); lossy = เล็กกว่า แต่สูญเสียข้อมูลถาวร
- lossless สำหรับข้อความ/โปรแกรม; lossy สำหรับ ภาพถ่าย/เพลง/วิดีโอ