Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Membezakan mampatan tanpa kehilangan dan dengan kehilangan

Soalan mampatan bertanya kaedah mana yang patut dipilih, dan jawapan kabur tentang mengecilkan fail hanya dapat sedikit markah.

Dalam halaman ini
  1. Apakah beza antara kedua-dua jenis ini?
  2. Bagaimana pengekodan larian panjang berfungsi?
  3. Contoh berlangkah
  4. Kesilapan yang perlu diawasi
  5. Semak kendiri
  6. Seterusnya

Mampatan tanpa kehilangan (lossless) mengecilkan fail dan membolehkan anda membina semula asal dengan tepat. Mampatan dengan kehilangan (lossy) mengecilkannya lebih lagi dengan membuang sebahagian data secara kekal, jadi asalnya tidak boleh dipulihkan. Soalan meminta anda mentakrif setiap satu, memilih satu untuk sesuatu situasi dan menjustifikasi pilihan itu.

Pelajaran ini menyambung saiz audio bersampel kerana pemampatan wujud untuk mengurangkan saiz besar yang baru anda kira.

Apakah beza antara kedua-dua jenis ini?

Kaedah tanpa kehilangan mencari corak dan menyimpannya dengan lebih cekap. Tiada apa yang dibuang. Fail teks, fail atur cara dan data yang mesti kekal tepat memerlukan kaedah ini.

Kaedah dengan kehilangan membuang butiran yang kurang mungkin disedari manusia. Foto dalam bentuk JPEG dan audio dalam bentuk MP3 ialah contoh harian. Kualiti menurun sedikit, dan semakin banyak anda memampat, semakin banyak yang hilang.

CiriTanpa kehilanganDengan kehilangan
Asal boleh dipulihkanYaTidak
Pengurangan saiz failLebih kecilBiasanya jauh lebih kecil
KualitiTidak berubahBerkurang
Sesuai untukTeks, atur cara, imbasan perubatanFoto, muzik, video untuk tontonan

Bagaimana pengekodan larian panjang berfungsi?

Pengekodan larian panjang (run-length encoding, RLE) ialah kaedah tanpa kehilangan. Ia menggantikan satu larian nilai yang sama dengan nilai itu dan satu kiraan.

Idea sebagai pseudokod gaya Cambridge, untuk rentetan yang disimpan dalam Data:

Count ← 1
FOR i ← 2 TO LENGTH(Data)
   IF MID(Data, i, 1) = MID(Data, i - 1, 1) THEN
      Count ← Count + 1
   ELSE
      OUTPUT MID(Data, i - 1, 1), Count
      Count ← 1
   ENDIF
NEXT i
OUTPUT MID(Data, LENGTH(Data), 1), Count

Jejak dengan Data = “AAABCC” (6 aksara):

iDibandingkanTindakanCount
mula1
2A, Asama, tambah 12
3A, Asama, tambah 13
4B, Aberbeza: output A 31
5C, Bberbeza: output B 11
6C, Csama, tambah 12
selepas gelungoutput C 2

Hasil: A3 B1 C2. Anda boleh menjejak gelung seperti ini dalam pelatih jejak pseudokod.

Contoh berlangkah

Satu baris imej hitam putih disimpan sebagai W W W W W W W W B B W W W W (14 piksel, W = putih, B = hitam). Mampatkan dengan RLE dan nyatakan sama ada kaedah itu tanpa kehilangan.

Langkah 1, kumpulkan larian: 8 putih, 2 hitam, 4 putih.

Langkah 2, tulis nilai dan kiraan: W8 B2 W4.

Langkah 3, semak dengan menyahkod: W×8, B×2, W×4 memberi semula 14 piksel asal dengan tepat.

Kesimpulan: 14 nilai menjadi 3 pasangan, iaitu 6 item disimpan. Kerana penyahkodan mengembalikan asal dengan tepat, RLE ialah tanpa kehilangan.

Kesilapan yang perlu diawasi

Kesilapan lazim ialah menganggap pemampatan sentiasa mengecilkan data.

Jawapan salah: “ABCD” dimampatkan menjadi A1B1C1D1, jadi lebih kecil.

Pelajar tidak mengira aksara. A1B1C1D1 mempunyai 8 aksara, lebih daripada 4 aksara asal.

Pembetulan: RLE hanya membantu apabila nilai berulang. Data tanpa larian boleh menjadi lebih besar. Jawapan yang baik menyatakan bahawa penjimatan bergantung pada corak dalam data.

Semak kendiri

Cuba soalan ini, kemudian buka setiap jawapan.

1. Kodkan WWWBBWWWWW dengan pengekodan larian panjang.

Tunjukkan jawapan

Larian: 3 W, 2 B, 5 W. Jawapan: W3 B2 W5. Penyahkodan memberi WWW BB WWWWW, 10 aksara asal.

2. Sebuah hospital menyimpan imbasan yang digunakan untuk diagnosis. Patutkah ia menggunakan mampatan tanpa kehilangan atau dengan kehilangan? Beri satu sebab.

Tunjukkan jawapan

Tanpa kehilangan. Mampatan dengan kehilangan membuang butiran secara kekal, dan butiran yang hilang dalam imej perubatan boleh mengubah diagnosis. Kaedah tanpa kehilangan mengekalkan setiap piksel.

3. Namakan satu sebab perkhidmatan penstriman muzik mungkin memilih mampatan dengan kehilangan.

Tunjukkan jawapan

Fail lossy jauh lebih kecil, jadi muat turun lebih pantas dan menggunakan kurang data, dan kehilangan kualiti sukar disedari oleh kebanyakan pendengar.

Seterusnya

Memilih antara kaedah sebenarnya ialah pertukaran antara saiz dan kualiti, jadi teruskan dengan menerangkan pertukaran kualiti-storan. Kemudian gunakan set latihan untuk soalan campuran.

Jika takrifan sudah mantap tetapi jawapan senario masih longgar, seorang guru boleh melatihnya dalam tuisyen Computer Science dalam talian satu dengan satu.

Soalan lazim

Apakah beza antara mampatan tanpa kehilangan dan dengan kehilangan?

Mampatan tanpa kehilangan (lossless) mengurangkan saiz fail supaya data asal boleh dibina semula dengan tepat. Mampatan dengan kehilangan (lossy) membuang sebahagian data secara kekal untuk mencapai saiz lebih kecil, jadi asalnya tidak boleh dipulihkan. Fail lossy biasanya lebih kecil tetapi kualitinya lebih rendah.

Bolehkah mampatan tanpa kehilangan menjadikan fail lebih besar?

Boleh. Pengekodan larian panjang memerlukan nilai berulang untuk menjimatkan ruang. Pada data tanpa larian, seperti ABCD, menyimpan kiraan bersama setiap item menjadikan hasilnya lebih panjang. Mampatan hanya membantu apabila data mempunyai corak yang boleh digunakan oleh kaedah itu.

Jenis mana yang perlu saya gunakan untuk fail teks atau atur cara?

Gunakan tanpa kehilangan. Mengubah satu aksara dalam dokumen atau satu arahan dalam atur cara akan merosakkannya. Kaedah lossy sesuai untuk imej, bunyi dan video, kerana kehilangan kecil sukar disedari oleh manusia.

Dikemas kini:

Langkah seterusnya

Jika anda boleh mentakrif kedua-dua jenis tetapi sukar memilih untuk sesuatu situasi, guru satu dengan satu boleh melatih jawapan senario pendek sehingga anda biasa.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa: tanya di sini

  • 9,000+ pelajar telah dibantu melalui perkhidmatan kami
  • 9+ tahun membantu pelajar IGCSE