Cara Mengompresi File dan Mengapa Format Zip Menghemat Bandwidth

13

Jika Anda menghabiskan waktu mengunduh perangkat lunak atau berbagi dokumen berukuran besar, kemungkinan besar Anda menemukan file .zip. Ini adalah salah satu kemudahan digital yang bekerja dengan sangat baik sehingga kita jarang mempertanyakannya. Premis dasarnya sederhana: ambil file berukuran besar, perkecil ukurannya, dan pindahkan ke seluruh web dengan lebih cepat. Atau hanya membuatnya memakan lebih sedikit ruang di hard drive Anda.

Namun ada sedikit paradoks di sini. Bagaimana Anda menghapus data dan secara ajaib menarik semuanya kembali nanti tanpa ada sedikit pun yang hilang?

Ini bukan sihir. Ini adalah manajemen redundansi. Setelah kita membahas dasar-dasar cara mengompres file, kita akan menggali mekanisme apa yang sebenarnya terjadi di dalam arsip tersebut.

Mengompresi File: Panduan Memulai Cepat

Pada intinya, kompresi menggunakan algoritma untuk mengurangi ukuran file. Ini menghemat ruang disk. Ini juga mempercepat transmisi melalui koneksi yang lebih lambat. Membuat file zip sudah ada di sebagian besar sistem operasi modern. Anda tidak memerlukan alat khusus untuk tugas-tugas dasar.

Inilah proses mudahnya.

1. Pilih File Target

Mulailah dengan mengidentifikasi apa yang ingin Anda kecilkan. Kompresi memberikan hasil terbaik dengan file yang lebih besar. File video dan gambar mentah adalah kandidat utama karena menghabiskan banyak bandwidth dan penyimpanan. File teks kecil sering kali dikompresi dengan buruk karena tidak memiliki pola berulang yang diperlukan untuk pengurangan yang efisien.

2. Gunakan Alat Bawaan

Anda mungkin sudah memiliki perangkat lunak yang Anda perlukan.

Di Windows, prosesnya sangat sederhana. Klik kanan file yang dipilih. Arahkan ke menu ‘Kirim ke’. Pilih ‘Folder terkompresi (zip)’. Windows menangani sisanya.

Pengguna Mac memiliki pintasan serupa. Control-klik file. Pilih ‘Kompres’. Sistem menghasilkan arsip zip secara otomatis.

Jika OS Anda tidak memiliki fitur ini atau Anda memerlukan opsi lanjutan, Anda memerlukan perangkat lunak pihak ketiga. Alat seperti 7-Zip atau WinRAR menawarkan kontrol yang lebih terperinci atas tingkat kompresi. Namun untuk penggunaan sehari-hari, alat bawaannya sudah cukup.

3. Hasilkan Arsip

Setelah Anda memicu perintah, perangkat lunak mulai bekerja. Ini memindai file. Ini menerapkan algoritma yang dipilih. Itu membuat file zip baru di direktori yang sama dengan aslinya.

Kecepatan proses ini bergantung pada dua faktor: ukuran file dan kemampuan CPU. Beberapa video besar mungkin memerlukan waktu beberapa detik. Folder yang penuh dengan file teks kecil mungkin memerlukan waktu lebih lama karena overhead, meskipun penambahan ukuran akhir mungkin dapat diabaikan.

4. Tangani Hasilnya

Anda sekarang memiliki satu wadah. Anda dapat mengganti namanya. Anda dapat memindahkannya ke drive USB. Anda dapat mengirimkannya melalui email. Penerima perlu mengekstraksi konten untuk menggunakannya. Hal ini membalikkan proses.

Ingatlah trade-offnya. Untuk dokumen, kode, dan teks, kompresi hampir tidak menimbulkan kerugian. Anda mendapatkan kembali apa yang Anda masukkan. Untuk gambar dan video, ceritanya berbeda. Beberapa metode kompresi menurunkan kualitas untuk mencapai ukuran yang lebih kecil. Ini dikenal sebagai kompresi lossy. Kompresi teks biasanya lossless.

Cara Kerja Kompresi File Sebenarnya

File komputer terkenal berulang-ulang. Mereka berisi informasi yang sama yang dirangkai berulang kali. Perangkat lunak kompresi berkembang pesat dalam redundansi ini.

Daripada menulis “the” tiga ratus kali, algoritma kompresi menulis “the” satu kali. Kemudian itu membuat penunjuk referensi. Setiap kali ia melihat “the”, ia menunjuk kembali ke contoh pertama. Ini secara drastis mengurangi jumlah bit dan byte.

Untuk memahami hal ini, mari kita lihat bahasa.

Misalnya pidato pengukuhan John F. Kennedy pada tahun 1961. Baris terkenal:

“Jangan tanya apa yang negara bisa berikan padamu, tapi tanyakan apa yang bisa kamu berikan untuk negaramu.”

Mari kita hitung satuannya. Kutipan tersebut terdiri dari 17 kata. Ini berisi 61 huruf. Ada 16 ruang. Satu tanda hubung. Satu periode. Jika kita menetapkan satu unit memori untuk setiap karakter, spasi, atau simbol, total ukuran file adalah 79 unit.

Sekarang, mari kita temukan redundansinya. Kami mengabaikan penggunaan huruf besar demi kesederhanaan.

  • “tanya” muncul dua kali.
  • “apa” muncul dua kali.
  • “milikmu” muncul dua kali.
  • “negara” muncul dua kali.
  • “bisa” muncul dua kali.
  • “lakukan” muncul dua kali.
  • “untuk” muncul dua kali.
  • “kamu” muncul dua kali.

Kira-kira setengah dari frasa tersebut mubazir. Sembilan kata unik — tanyakan, bukan, apa, negara Anda, dapat, lakukan, untuk, Anda — berisi hampir semua informasi yang diperlukan. Untuk merekonstruksi babak kedua, algoritme hanya menunjuk pada kata-kata di babak pertama. Itu mengisi spasi dan tanda baca menggunakan aturan sederhana.

Inilah inti dari kompresi lossless. Itu tidak menghapus informasi. Ini menghilangkan pengulangan.

Selanjutnya kita akan melihat lebih dekat algoritma yang mencari pola-pola ini.

Biaya Tersembunyi Kompresi Kamus

Sebagian besar alat kompresi mengandalkan variasi algoritma kamus adaptif LZ. Namanya diambil dari nama pencipta Lempel dan Ziv, dan bagian “kamus” adalah mekanisme untuk membuat katalog data berulang. Sistem pengorganisasian entri ini tidak rumit. Ini bisa berupa daftar bernomor sederhana.

Ambil contoh kalimat terkenal JFK. Program kompresi memindai kata-kata yang berulang dan menetapkannya ke indeks. Kemudian ia mengganti kata-kata tersebut dengan nomor yang ditetapkan.

Jika kamusnya terlihat seperti ini:

  • bertanya
  • apa
  • milikmu
  • negara
  • bisa
  • untuk
  • kamu

Kalimat “Jangan tanya apa yang negaramu bisa berikan padamu; tanyakan apa yang bisa kamu lakukan untuk negaramu” berubah menjadi sebuah kode. Ini menjadi:

1 bukan 2 3 4 5 6 7 8 — 1 2 8 5 6 7 3 4

Komputer penerima menggunakan kamus dan pola angka yang sama untuk merekonstruksi teks aslinya. Begitulah cara kerja ekspansi. Beberapa file terkompresi berisi program ekspansi tertanam. Secara otomatis membangun kembali file asli setelah diunduh.

Tapi berapa banyak ruang yang sebenarnya bisa dihemat?

String numerik lebih pendek dari kutipan lengkap. Ada tangkapan. Anda harus menyimpan kamus itu sendiri bersama dengan data terkompresi.

Dalam skenario dunia nyata, menghitung kebutuhan file bisa jadi berantakan. Untuk perincian ini, asumsikan setiap karakter dan spasi sama dengan satu unit memori. Frasa lengkapnya menempati 79 unit. Kalimat ringkasnya menggunakan 37 satuan. Kamus juga memakan 37 unit.

Total ukuran file adalah 74 unit. Pengurangannya minimal.

Ini hanya satu kalimat. Jika algoritme memproses sisa ucapan, maka kata-kata tersebut akan lebih sering diulang. Efisiensi meningkat seiring dengan meningkatnya pengulangan. Seperti yang akan kita lihat, sistem juga menulis ulang kamusnya sendiri untuk lebih mengoptimalkan pengorganisasian.

Melampaui Pencocokan Kata Sederhana

Langkah-langkah sebelumnya mengandalkan identifikasi kata-kata yang lengkap dan berulang. Kami memperlakukan teks sebagai rangkaian unit diskrit. Algoritme kompresi tidak memedulikan kata-kata. Ia peduli dengan pola.

Tujuannya sederhana: mengecilkan file.

Untuk melakukan itu, perangkat lunak memindai redundansi. Ia tidak menanyakan “apakah ini sebuah kata?” Ia menanyakan “pernahkah saya melihat urutan ini sebelumnya?” Dan itu kejam. Jika suatu pola hanya muncul sekali, maka pola tersebut akan dihapus. Jika pola yang lebih pendek lebih sering muncul dibandingkan pola yang panjang, pola yang lebih panjang mungkin akan terpotong.

Ini adalah inti “adaptif” dari algoritma berbasis LZ. Kamus berkembang. Itu berubah. Ini mengoptimalkan secara real-time.

Cara Kerja Pemilihan Pola

Ambil contoh kalimat terkenal JFK.

“Jangan tanya apa yang negara bisa berikan padamu, jangan tanya apa yang bisa kamu berikan untuk negaramu.”

Manusia melihat kata-kata. Kompresor melihat karakter.

Urutan pengulangan pertama mungkin kecil. “t” diikuti dengan spasi. Itu muncul di “bukan” dan “apa”. Program mencatatnya. Tuliskan. Kemudian berlanjut.

Mengapa? Karena dalam cuplikan singkat ini, “t ” tidak cukup mengulang untuk membenarkan biaya penyimpanan ID-nya sendiri di kamus. Itu ditimpa atau diabaikan.

Selanjutnya, “ou” muncul di “your” dan “country”. Berguna? Mungkin. Dalam buku lengkapnya, “ou” adalah tambang emas. Di Sini? Algoritme menemukan sesuatu yang lebih baik.

“negara Anda” dan “negara” muncul bersamaan sebagai “negara Anda”. Diulang dua kali. Ini adalah sinyal yang lebih kuat daripada “ou”. Entri kamus untuk “ou” dibuang. “negaramu” menggantikannya.

Tapi tunggu.

Lihatlah “dapat melakukan untuk.” Diikuti dengan “milikmu” dan “kamu”. Urutan “dapat melakukan untuk Anda” berulang.

Mana yang lebih efisien?
“negara Anda” = 13 karakter (termasuk spasi).
“dapat melakukan untuk Anda” = 15 karakter.

Algoritme lebih memilih pencocokan yang lebih lama jika menyimpan lebih banyak bit per instance. Namun “dapat melakukan untuk Anda” mencakup “Anda”, sedangkan “negara Anda” mencakup “milik Anda”.

Jika program memprioritaskan penggantian karakter secara maksimal, program tersebut mungkin akan merusak “negara Anda”. Itu menjadikan “r country” sebagai akhiran dan membuat entri utama untuk “can do for you”. Hal ini memungkinkan kompresor untuk mereferensikan sebagian besar frasa dengan satu kode, sambil menangani sedikit variasi (“Anda” vs “Anda”) dengan referensi sekunder.

Penulisan ulang yang dinamis inilah yang membuat LZ adaptif. Kamus tidak statis. Ini adalah catatan hidup tentang apa yang baru saja terjadi dalam aliran data.

Rasio Kompresi

Menggunakan pola turunan kami:

  • tanya__
  • apa__
  • kamu
  • r__negara
  • cando__untuk__kamu

Kalimat aslinya menjadi rangkaian petunjuk:

1 tidak__ 2 3 4 5 __ — __ 1 2 3 5 4

Penggunaan memori berubah secara dramatis.

Teks asli: 79 unit.
Data terkompresi: 18 unit.
Overhead kamus: 41 unit.
Jumlah: 59 unit.

Kami menghemat 20 unit. Itu kira-kira pengurangan sebesar 25%. Lumayan untuk beberapa baris pidato. Dan belum tentu keluarannya seefisien mungkin. Anda mungkin bisa menemukan pengaturan yang lebih ketat. Namun intinya: menemukan pola yang tepat lebih penting daripada sekadar menemukan pola apa pun.

Mengapa Kompres Teks Lebih Baik Dibandingkan Grafik

Jadi mengapa beberapa file menyusut 50% atau lebih, sementara yang lain hampir tidak berubah?

Redundansi.

Bahasa alami sangat mubazir. Surat mengelompok dengan cara tertentu. “I,” “ing,” “tion.” Kata-kata berulang terus-menerus. File teks padat dengan struktur yang dapat diprediksi ini. Kompresor berkembang pesat di sini.

Kode pemrograman serupa. Sekumpulan kata kunci dan perintah terbatas berulang tanpa henti. jika, sementara, kembali. Polanya kaku. Kompresi bekerja dengan baik.

Grafik? Audio?

Tidak terlalu banyak.

Gambar atau file MP3 berisi data unik. Setiap piksel memiliki nilai tertentu. Setiap sampel audio berbeda. Ada beberapa urutan yang berulang. Entropinya tinggi. Algoritme tidak dapat menemukan cukup banyak pola yang tumpang tindih untuk membuat kamus yang berguna.

Inilah sebabnya mengapa kompresi lossless gagal pada file media. Anda memerlukan teknik yang berbeda. Lebih lanjut tentang itu nanti.

Ukuran File dan Pilihan Algoritma

Apakah kompresi membaik dengan file yang lebih besar?

Secara umum, ya.

Jika kita memampatkan seluruh pidato JFK, maka penghematannya akan lebih besar. Mengapa? Karena pola yang sama lebih sering terulang. Entri kamus digunakan kembali ribuan kali. Biaya kamus menjadi dapat diabaikan dibandingkan dengan penghematan.

File kecil? Kamus di atas memakan keuntungannya.

Pilihan algoritma juga memainkan peran besar.

Tidak semua varian LZ diciptakan sama. Beberapa disetel untuk teks. Beberapa untuk data. Beberapa menggunakan kamus hierarki—kamus di dalam kamus—untuk menangkap pola yang rumit dan bertumpuk dalam file besar. Mereka mungkin tersedak oleh masukan-masukan kecil.

Pemrogram terus-menerus mengubah sistem ini. Tujuannya selalu sama: rasio lebih baik, kecepatan lebih tinggi. Namun tidak ada solusi universal.

Kompresor terbaik untuk teks Anda mungkin yang terburuk untuk database Anda.

Kompresi yang telah kita diskusikan adalah kompresi lossless. Ini satu-satunya cara untuk menjamin Anda mendapatkan kembali file aslinya. Setiap bagiannya tetap utuh. Anda memecah file menjadi bagian yang lebih kecil untuk disimpan atau ditransfer, lalu menyusunnya kembali persis seperti semula. Tidak ada data yang hilang.

Kompresi lossy mengambil rute yang berbeda. Ia tidak mencoba melestarikan segalanya. Sebaliknya, ia membuang informasi yang “tidak perlu”. Tujuannya sederhana: memperkecil file. Anda akan melihatnya di mana-mana. Ini adalah standar untuk gambar bitmap.

Bitmap membengkak. Mereka memakan ruang. Foto yang dipindai adalah contoh sempurna.

Algoritme lossless kesulitan di sini. Tentu saja, sebagian besar terlihat sama. Langit berwarna biru. Tapi lihat lebih dekat. Setiap piksel sedikit berbeda. Nilai warna bergeser. Untuk mengecilkan file tanpa kehilangan resolusi, Anda harus mengubah nilai tersebut.

Program ini memilih satu warna biru. Ini memberikan nilai tunggal itu ke setiap piksel di langit. Itu menulis ulang file untuk menunjuk kembali ke referensi itu. Hasilnya? Ukuran file turun secara signifikan. Anda tidak akan melihat perbedaannya.

Tapi ada kendalanya. Anda tidak akan pernah bisa mendapatkan file aslinya kembali.

Setelah Anda mengompresnya, Anda terjebak dengan interpretasi program terhadap kenyataan. Data aslinya hilang. Anda tidak dapat menggunakan kompresi lossy untuk hal-hal yang memerlukan reproduksi tepat. Aplikasi perangkat lunak? Tidak. Database? Tidak. Pidato pelantikan Presiden? Jelas tidak.

“Dengan kompresi lossy, Anda tidak bisa mendapatkan kembali file asli setelah dikompresi. Anda terjebak dengan penafsiran ulang program kompresi terhadap file asli.”

Kami memperbarui artikel ini bersama dengan teknologi AI, lalu memastikan artikel tersebut telah diperiksa faktanya dan diedit oleh editor HowStuffWorks.

FAQ Kompresi File

Apa gunanya mengompresi file?
Ini mengurangi ukuran file. File yang lebih kecil berarti transmisi lebih cepat. Anda mengirim dan menerima data lebih cepat.

Apa saja tipe dasar skema kompresi file?
Ada dua. Tanpa rugi dan rugi. Lossless memecah file dan membangunnya kembali nanti. Lossy menghilangkan bit. Ini mengecilkan file secara permanen. Anda tidak dapat membalikkan kompresi yang hilang.

Kompresi manakah yang digunakan file zip?
File zip mengandalkan kompresi data lossless. Mereka menangani banyak direktori. Mereka menggunakan algoritma seperti DEFLATE. Data yang keluar persis seperti yang masuk.

Apakah kompresi file mengurangi kualitas?
Ya. Setelah gambar dikompresi di komputer atau kamera, kualitasnya sering kali menurun. Ketajaman menurun. Kontras memudar. Detail warna halus menghilang. Gambarnya terlihat lebih buruk. Itulah trade-offnya.