Cara Kerja Kompresi File – Jika Anda mengunduh banyak program dan file dari Internet, Anda mungkin pernah menemukan file ZIP sebelumnya.
Cara Kerja Kompresi File
freearc – Sistem kompresi ini adalah penemuan yang sangat berguna, terutama bagi pengguna Web, karena memungkinkan Anda mengurangi jumlah keseluruhan bit dan byte dalam file sehingga dapat ditransmisikan lebih cepat melalui koneksi Internet yang lebih lambat, atau menggunakan lebih sedikit ruang pada disk. Setelah Anda mengunduh file, komputer Anda menggunakan program seperti WinZip atau Stuffit untuk memperluas file kembali ke ukuran aslinya. Jika semuanya berfungsi dengan benar, file yang diperluas identik dengan file asli sebelum dikompresi.
Sepintas, ini tampak sangat misterius. Bagaimana Anda bisa mengurangi jumlah bit dan byte dan kemudian menambahkan bit dan byte yang tepat itu nanti? Ternyata, ide dasar di balik proses ini cukup mudah. Pada artikel ini, kita akan membahas metode sederhana ini saat kita mengambil file yang sangat kecil melalui proses dasar kompresi.
Sebagian besar jenis file komputer cukup berlebihan mereka memiliki informasi yang sama yang terdaftar berulang kali. Program kompresi file hanya menghilangkan redundansi. Alih-alih mendaftar sepotong informasi berulang-ulang, program kompresi file mencantumkan informasi itu sekali dan kemudian merujuk kembali ke sana setiap kali muncul di program aslinya.
Baca Juga : 10 Program Zip Gratis Terbaik
Kutipan memiliki 17 kata, terdiri dari 61 huruf, 16 spasi, satu tanda hubung, dan satu titik. Jika setiap huruf, spasi, atau tanda baca memakan satu unit memori , kami mendapatkan ukuran file total 79 unit. Untuk memperkecil ukuran file, kita perlu mencari redundansi.
Segera, kami memperhatikan bahwa:
- “tanya” muncul dua kali
- “apa” muncul dua kali
- “Anda” muncul dua kali
- “negara” muncul dua kali
- “bisa” muncul dua kali
- “lakukan” muncul dua kali
- “untuk” muncul dua kali
- “kamu” muncul dua kali
Mengabaikan perbedaan antara huruf kapital dan huruf kecil, kira-kira setengah dari frasa tersebut berlebihan. Sembilan kata tanyakan, bukan, apa, negara Anda, dapat, lakukan, untuk, Anda memberi kami hampir semua yang kami butuhkan untuk keseluruhan kutipan. Untuk menyusun paruh kedua frasa, kita cukup menunjuk kata-kata di paruh pertama dan mengisi spasi dan tanda baca.
Dalam contoh kami sebelumnya, kami memilih semua kata yang diulang dan memasukkannya ke dalam kamus. Bagi kami, ini adalah cara paling jelas untuk menulis kamus. Tetapi program kompresi melihatnya dengan cara yang sangat berbeda: Program ini tidak memiliki konsep kata-kata yang terpisah program ini hanya mencari pola. Dan untuk mengurangi ukuran file sebanyak mungkin, ia dengan hati-hati memilih pola mana yang akan disertakan dalam kamus.
Jika program kompresi memindai frasa Kennedy, redundansi pertama yang akan ditemukan hanya beberapa huruf. Dalam “ask not what your,” ada pola berulang dari huruf “t” diikuti dengan spasi dalam “not” dan “what.” Jika program kompresi menulis ini ke kamus, ia dapat menulis “1” setiap kali “t” diikuti oleh spasi. Tetapi dalam frasa singkat ini, pola ini tidak cukup muncul untuk menjadikannya entri yang berharga, sehingga program pada akhirnya akan menimpanya.
Hal berikutnya yang mungkin diperhatikan oleh program adalah “ou”, yang muncul di “your” dan “country”. Jika ini adalah dokumen yang lebih panjang, menulis pola ini ke kamus dapat menghemat banyak ruang “ou” adalah kombinasi yang cukup umum dalam bahasa Inggris. Tetapi ketika program kompresi bekerja melalui kalimat ini, ia akan dengan cepat menemukan pilihan yang lebih baik untuk entri kamus: Tidak hanya “ou” yang diulang, tetapi seluruh kata “your” dan “country” keduanya diulang, dan mereka benar-benar diulang. bersama-sama, sebagai ungkapan “negara Anda.” Dalam hal ini, program akan menimpa entri kamus untuk “ou” dengan entri untuk “negara Anda”.
Ungkapan “dapat melakukan untuk” juga diulang, satu kali diikuti oleh “Anda” dan satu kali diikuti oleh “Anda”, memberi kita pola berulang “dapat melakukan untuk Anda”. Ini memungkinkan kita menulis 15 karakter (termasuk spasi) dengan satu nilai angka, sedangkan “negara Anda” hanya memungkinkan kita menulis 13 karakter (dengan spasi) dengan satu nilai angka, sehingga program akan menimpa entri “negara Anda” hanya sebagai “r negara,” dan kemudian tulis entri terpisah untuk “dapat dilakukan untuk Anda.” Program berjalan dengan cara ini, mengambil semua bit informasi yang berulang dan kemudian menghitung pola mana yang harus ditulis ke kamus. Kemampuan untuk menulis ulang kamus ini adalah bagian “adaptif” dari algoritma berbasis kamus adaptif LZ .
Apa pun metode spesifik yang Anda gunakan, sistem pencarian mendalam ini memungkinkan Anda mengompres file jauh lebih efisien daripada hanya dengan memilih kata. Menggunakan pola yang kami pilih di atas, dan menambahkan “__” untuk spasi, kami menemukan kamus yang lebih besar ini:
- bertanya__
- Apa__
- Anda
- r__negara
- __bisa__melakukan__untuk__Anda
Kalimat itu sekarang membutuhkan 18 unit memori, dan kamus kami membutuhkan 41 unit. Jadi kami telah mengompresi ukuran file total dari 79 unit menjadi 59 unit! Ini hanyalah salah satu cara untuk mengompresi frasa, dan belum tentu yang paling efisien. (Lihat apakah Anda dapat menemukan cara yang lebih baik!)
Jadi seberapa bagus sistem ini? Rasio pengurangan file tergantung pada sejumlah faktor, termasuk jenis file, ukuran file, dan skema kompresi. Di sebagian besar bahasa di dunia, huruf dan kata tertentu sering muncul bersamaan dalam pola yang sama. Karena tingkat redundansi yang tinggi ini, file teks terkompresi dengan sangat baik. Pengurangan 50 persen atau lebih adalah tipikal untuk file teks berukuran baik.
Sebagian besar bahasa pemrograman juga sangat berlebihan karena menggunakan kumpulan perintah yang relatif kecil, yang sering berjalan bersama dalam pola yang ditetapkan. File yang menyertakan banyak informasi unik, seperti grafik atau file MP3 , tidak dapat dikompresi banyak dengan sistem ini karena tidak mengulangi banyak pola (lebih lanjut tentang ini di bagian berikutnya).
Jika file memiliki banyak pola berulang, laju pengurangan biasanya meningkat seiring dengan ukuran file. Anda dapat melihat ini hanya dengan melihat contoh kita jika kita memiliki lebih banyak pidato Kennedy, kita akan dapat merujuk ke pola dalam kamus kita lebih sering, dan dengan demikian mendapatkan lebih banyak dari setiap ruang file entri. Juga, pola yang lebih meresap mungkin muncul dalam pekerjaan yang lebih lama, memungkinkan kita untuk membuat kamus yang lebih efisien.
Efisiensi ini juga tergantung pada algoritma spesifik yang digunakan oleh program kompresi. Beberapa program sangat cocok untuk mengambil pola dalam jenis file tertentu, sehingga dapat mengompresnya dengan lebih ringkas. Yang lain memiliki kamus di dalam kamus, yang mungkin dikompres secara efisien untuk file yang lebih besar tetapi tidak untuk yang lebih kecil. Sementara semua program kompresi semacam ini bekerja dengan ide dasar yang sama, sebenarnya ada banyak variasi dalam cara eksekusi. Programmer selalu berusaha membangun sistem yang lebih baik.
Kompresi lossy bekerja sangat berbeda. Program-program ini hanya menghilangkan bit informasi yang “tidak perlu”, menyesuaikan file agar lebih kecil. Jenis kompresi ini banyak digunakan untuk mengurangi ukuran file gambar bitmap, yang cenderung cukup besar. Untuk melihat cara kerjanya, mari pertimbangkan bagaimana komputer Anda dapat memampatkan foto yang dipindai .
Program kompresi lossless tidak dapat berbuat banyak dengan jenis file ini. Meskipun sebagian besar gambar mungkin terlihat sama seluruh langit berwarna biru, misalnya sebagian besar piksel individu sedikit berbeda. Untuk membuat gambar ini lebih kecil tanpa mengurangi resolusi, Anda harus mengubah nilai warna untuk piksel tertentu. Jika gambar memiliki banyak langit biru, program akan memilih satu warna biru yang dapat digunakan untuk setiap piksel. Kemudian, program menulis ulang file sehingga nilai untuk setiap piksel langit merujuk kembali ke informasi ini. Jika skema kompresi bekerja dengan baik, Anda tidak akan melihat perubahannya, tetapi ukuran file akan berkurang secara signifikan.
Tentu saja, dengan kompresi lossy, Anda tidak bisa mendapatkan kembali file asli setelah dikompresi. Anda terjebak dengan interpretasi ulang program kompresi dari aslinya. Untuk alasan ini, Anda tidak dapat menggunakan kompresi semacam ini untuk apa pun yang perlu direproduksi secara tepat, termasuk aplikasi perangkat lunak, database, dan pidato pelantikan presiden.