Apa nilai praktis redundansi dalam file zip?

9

Bagaimana redundansi diterapkan dalam zipping, dan bagaimana saya mendapat manfaat darinya?

Saya berasumsi itu terdiri dari sesuatu seperti menyimpan tabel pencarian dua kali sehingga satu cacat tidak membatalkan seluruh sisa file. Mengenai use case, mungkin saat menyimpan file pada CD yang mendapat sedikit goresan?

Namun, saya pribadi tidak pernah mendapat untung dari menambahkan redundansi ke file zip, dan saya cenderung menghilangkannya, jadi saya bertanya-tanya apakah mereka sebenarnya berguna dalam praktik.

mafu
sumber
CD menggunakan jenis redundansi mereka sendiri untuk mengkompensasi goresan dll, itu disebut modulasi delapan ke empat belas. Saya pikir kasus penggunaan yang lebih baik adalah unduhan yang rusak karena alasan apa pun.
slhck

Jawaban:

1

Saya percaya Anda berbicara tentang algoritma adaptif LZ. Itu tidak disebut sebagai redundansi karena apa pun yang diduplikasi dalam proses membangun file zip. Istilah ini berasal dari cara kerja metode kompresi ini.

Sebagai ilustrasi, berikut ini sebuah contoh. Katakanlah saya punya dokumen yang mengandung frasa:

It is what it is because that's what it is

Jika saya ingin mempersingkat frasa ini melalui redundansi, saya pertama-tama akan membuat kamus yang berisi semua kata yang diulang, seperti

1it
2is
3what

Dan kemudian saya akan menulis ulang kalimat itu sebagai

12312becausethats312 

Jika saya ingin mengompres lebih jauh saya bisa menambahkan yang berikut ke kamus saya:

312x
12y

Sehingga menjadi

yxbecausethatsx

Seperti yang Anda lihat, semakin banyak redundansi memeriksa Anda melalui semakin besar kompresi. Tapi Anda juga meningkatkan kemungkinan korupsi. Ini karena seiring bertambahnya kamus, kamus cenderung mengalami kerusakan dan jika ada bagian kamus yang rusak, sisanya tidak dapat dibaca.

Blomkvist
sumber
2
Saya pikir ini bukan yang saya maksudkan. Saya sedang berbicara tentang opsi untuk menambahkan informasi pemulihan. Fitur ini mungkin tidak ada dalam format zip klasik.
mafu
2
Jawaban yang bagus untuk pertanyaan yang berbeda: /
endolith