Di era digital modern, volume data yang dihasilkan dan dikonsumsi oleh manusia telah mencapai skala yang hampir tidak terbayangkan. Mulai dari teks sederhana, citra beresolusi tinggi, hingga video 4K yang mendominasi lalu lintas internet, kebutuhan akan penyimpanan dan transmisi data yang efisien menjadi sangat mendesak. Di sinilah peran fundamental dari konsep mengompresi data muncul. Mengompresi adalah sebuah disiplin ilmu teknik yang bertujuan untuk mengurangi ukuran representasi data tanpa mengorbankan informasi vital, atau setidaknya, mengorbankan informasi tersebut secara minimal sesuai dengan ambang batas persepsi manusia.
Tindakan mengompresi bukan sekadar menekan ukuran file; ini adalah tentang menganalisis struktur intrinsik data, mengidentifikasi pola berulang (redundansi), dan merepresentasikannya menggunakan notasi yang lebih ringkas. Proses ini melibatkan matematika, teori informasi, statistik, dan psikologi persepsi, menjadikannya salah satu pilar utama dalam teknologi komputasi, mulai dari sistem operasi, jaringan komunikasi, hingga penyimpanan arsip jangka panjang.
Inti dari semua algoritma kompresi terletak pada penghapusan redundansi. Redundansi adalah kelebihan informasi dalam sebuah data yang sebenarnya dapat diprediksi atau dihilangkan tanpa mengubah makna fundamental dari data tersebut. Sebagai contoh sederhana, dalam sebuah teks yang menggunakan kata "aaaaaa", huruf 'a' diulang sebanyak enam kali. Representasi ini redundan. Kita bisa menggantinya dengan "6a", yang merupakan representasi yang jauh lebih pendek.
Konsep yang mengatur batas maksimum seberapa jauh data dapat dikompresi disebut Entropi Informasi, yang diperkenalkan oleh Claude Shannon. Entropi mengukur tingkat ketidakpastian atau keacakan data. Data yang sangat acak, seperti kebisingan putih atau data yang sudah dienkripsi dengan baik, memiliki entropi tinggi dan sangat sulit, bahkan mustahil, untuk dikompresi. Sebaliknya, data dengan entropi rendah—yang memiliki banyak pola dan pengulangan—adalah kandidat sempurna untuk kompresi yang signifikan.
Dalam konteks mengompresi data, kita mencoba mendekati batas entropi ini. Algoritma kompresi bekerja dengan menciptakan model probabilistik dari data input. Semakin baik model tersebut memprediksi simbol atau urutan simbol berikutnya, semakin rendah entropi yang efektif, dan semakin tinggi rasio kompresi yang dapat dicapai. Oleh karena itu, kompresi adalah upaya untuk menemukan dan mengeksploitasi keteraturan yang tersembunyi dalam lautan bit data.
Secara garis besar, teknik mengompresi data dibagi menjadi dua kategori besar, yang definisinya sangat krusial dalam menentukan penerapannya:
Gambar 1: Perbedaan fundamental antara kompresi nir-hilang (Lossless) dan berkehilangan (Lossy).
Kompresi nir-hilang beroperasi pada prinsip mencari dan mengganti urutan data yang panjang dan berulang dengan referensi atau kode yang lebih pendek. Ada dua pendekatan utama dalam kompresi nir-hilang: pengkodean berdasarkan frekuensi (entropy encoding) dan pengkodean berdasarkan kamus (dictionary encoding).
Pengkodean Huffman (Huffman Coding) adalah salah satu metode kompresi nir-hilang yang paling klasik dan sering digunakan. Intinya adalah menetapkan kode biner dengan panjang variabel (variable-length code) pada setiap simbol dalam data input. Simbol yang sering muncul diberi kode pendek, sementara simbol yang jarang muncul diberi kode yang lebih panjang. Ini memanfaatkan redundansi statistik data—simbol yang sangat sering digunakan memberikan penghematan besar.
Proses kompresi Huffman dimulai dengan membangun Pohon Huffman. Pohon ini dibuat dari bawah ke atas, menggabungkan dua simbol dengan frekuensi terendah menjadi simpul baru hingga hanya tersisa satu akar. Setiap jalur ke kiri diberi nilai biner '0' dan ke kanan '1'. Karena tidak ada kode yang merupakan awalan dari kode lain (properti prefiks), dekompresi dapat dilakukan secara unik tanpa ambiguitas, menjamin sifat nir-hilang.
Meskipun Huffman sangat efisien, ia membutuhkan dua tahap: menghitung frekuensi simbol dan kemudian mengodekannya. Kelemahan utamanya adalah bahwa tabel frekuensi (pohon Huffman) itu sendiri harus disimpan bersama data yang dikompresi, yang memakan sedikit ruang overhead. Ini juga merupakan skema statis; ia hanya mengukur frekuensi awal dan menggunakannya untuk seluruh file.
Pengkodean Aritmetika (Arithmetic Coding) adalah alternatif yang lebih canggih daripada Huffman. Alih-alih menetapkan kode biner untuk setiap simbol, pengkodean aritmetika mewakili seluruh urutan data sebagai sebuah interval tunggal dalam rentang angka antara 0 dan 1. Panjang interval ini berbanding lurus dengan probabilitas urutan tersebut muncul. Semakin besar kompresi, semakin kecil intervalnya, dan semakin banyak bit presisi yang diperlukan untuk mewakilinya. Pengkodean aritmetika umumnya mencapai kompresi 5-10% lebih baik daripada Huffman karena ia tidak terikat pada batasan bit integer (seperti Huffman) dan dapat mewakili simbol dengan frekuensi yang sangat tinggi secara lebih efisien.
Pendekatan kamus (Dictionary Encoding) tidak hanya bergantung pada frekuensi simbol tunggal, melainkan pada pengulangan urutan simbol atau frasa. Teknik ini mencari urutan bit yang berulang dan menggantinya dengan referensi yang jauh lebih pendek, mirip dengan konsep tautan atau pointer.
LZ77 adalah dasar dari banyak format modern, termasuk DEFLATE (yang digunakan dalam ZIP dan GZIP). LZ77 bekerja secara "sliding window". Saat ia memproses data, ia mempertahankan dua area memori: buffer pencarian (search buffer atau dictionary window) yang berisi data yang telah diproses baru-baru ini, dan buffer pandangan ke depan (look-ahead buffer) yang berisi data yang akan diproses.
Ketika algoritma menemukan urutan data yang sama persis dalam buffer pencarian, ia tidak menyimpan urutan data asli. Sebaliknya, ia menghasilkan sebuah tupel (pasangan nilai) yang disebut pointer. Pointer ini terdiri dari tiga komponen:
Berbeda dengan LZ77 yang menggunakan "sliding window" dinamis, LZ78 (Lempel-Ziv 1978) dan variannya yang populer, LZW (Lempel-Ziv-Welch, digunakan dalam format GIF dan PDF awal), bekerja dengan membangun kamus secara eksplisit. Saat data diproses, algoritma mengidentifikasi urutan baru dan menambahkannya ke kamus, menetapkan indeks kamus baru untuk setiap urutan. Untuk data berikutnya, ketika urutan yang sudah ada di kamus ditemukan, algoritma hanya menyiarkan indeks kamus tersebut.
Keuntungan LZW adalah dekompresor dapat merekonstruksi kamus yang sama persis hanya dengan membaca indeks, tanpa perlu menyimpan kamus secara terpisah. Ini membuat LZW sangat efisien untuk dekompresi dan sangat baik untuk data yang memiliki kosakata atau frasa yang berulang secara terpisah, meskipun tidak sekuat DEFLATE dalam kasus data yang sangat terstruktur.
Format kompresi yang paling banyak digunakan di dunia saat ini, DEFLATE (digunakan dalam ZIP, GZIP, PNG), adalah hasil pernikahan antara LZ77 dan Pengkodean Huffman. Proses DEFLATE berjalan sebagai berikut:
Sinergi ini memaksimalkan kompresi: LZ77 menghilangkan redundansi struktural (frasa berulang), dan Huffman menghilangkan redundansi statistik (frekuensi simbol). Kombinasi ini menghasilkan kompresi nir-hilang yang sangat baik, cepat, dan menjadi standar de-facto untuk kompresi data umum.
Gambar 2: Ilustrasi dasar Pohon Huffman. Simbol yang memiliki frekuensi tinggi (di atas) akan memiliki jalur yang lebih pendek dari akar, menghasilkan kode yang lebih ringkas.
Kompresi berkehilangan adalah revolusi sejati dalam manajemen media digital, memungkinkan distribusi konten multimedia berkapasitas besar melalui saluran yang terbatas. Teknik ini didasarkan pada dua prinsip utama: transformasi data untuk memisahkan informasi penting dari informasi redundan, dan kuantisasi (penghilangan detail) pada informasi redundan tersebut.
Joint Photographic Experts Group (JPEG) adalah standar de-facto untuk gambar diam fotografi. JPEG mencapai kompresi tinggi dengan memanfaatkan fakta bahwa mata manusia lebih sensitif terhadap perubahan kecerahan (luminance) daripada perubahan warna (chrominance) dan bahwa mata kurang sensitif terhadap detail frekuensi tinggi (perubahan tajam) dibandingkan frekuensi rendah (area halus).
Perbedaan antara kualitas 90% dan 50% dalam JPEG sebagian besar ditentukan oleh matriks kuantisasi. Pengurangan ini menyebabkan artefak visual yang khas, terutama di tepi tajam, dikenal sebagai artefak blok atau artefak dering, karena koefisien frekuensi tinggi yang bertanggung jawab atas ketajaman detail telah dihilangkan secara permanen.
Gambar 3: Tahapan inti Kompresi Berkehilangan. DCT mengubah data ke domain frekuensi, di mana kuantisasi dapat menghilangkan detail frekuensi tinggi yang kurang diperhatikan mata.
Audio compression, yang paling terkenal diwakili oleh Moving Picture Experts Group (MPEG) Audio Layer 3 (MP3), adalah aplikasi yang cemerlang dari ilmu psikoakustik. Tujuannya adalah menghilangkan bagian dari sinyal audio yang tidak dapat didengar oleh telinga manusia karena fenomena masker.
Telinga manusia memiliki keterbatasan dalam mendengar, terutama ketika dua suara terdengar bersamaan:
Penerus MP3, seperti AAC (Advanced Audio Coding) dan Opus, menggunakan filter bank yang lebih canggih dan model psikoakustik yang lebih detail, memungkinkan kualitas suara yang setara dengan MP3 pada bitrate yang jauh lebih rendah, menunjukkan evolusi berkelanjutan dalam teknik mengompresi berkehilangan.
Video adalah tantangan kompresi terbesar karena ia merupakan urutan citra bergerak (frame) yang juga disertai audio. Video memiliki dua jenis redundansi utama yang harus ditangani secara simultan:
Standar seperti MPEG (termasuk H.264/AVC dan H.265/HEVC) menggunakan kombinasi dari teknik-teknik ini untuk mencapai rasio kompresi ekstrem (hingga 100:1 atau lebih).
Ini adalah kunci untuk mengatasi redundansi temporal. Alih-alih menyimpan setiap frame secara keseluruhan, kompresor video hanya menyimpan perbedaan dari frame sebelumnya. Algoritma mencari blok piksel (makroblok) dari frame saat ini dalam frame referensi (biasanya frame sebelumnya, atau bahkan frame berikutnya).
Jika makroblok ditemukan, kompresor tidak menyimpan piksel makroblok itu sendiri. Sebaliknya, ia menyimpan vektor gerak (motion vector), yang menunjukkan perpindahan posisi makroblok dari frame referensi. Vektor gerak jauh lebih kecil daripada data piksel yang diwakilinya.
Pengkodean video membagi frame menjadi tiga jenis berdasarkan kebutuhan prediksi:
Seluruh sistem ini, dikombinasikan dengan DCT, kuantisasi, dan pengkodean entropi pada sisa perbedaan yang tersisa, memungkinkan video 4K ditransmisikan melalui jaringan broadband biasa. Tanpa prediksi gerak dan manajemen redundansi temporal, volume data video akan menjadi terlalu besar untuk ditangani secara praktis.
Kompresi tidak hanya terbatas pada format file arsip, tetapi juga terintegrasi dalam hampir setiap lapisan infrastruktur digital, mulai dari hard drive hingga protokol jaringan.
Format seperti ZIP dan GZIP sebagian besar mengimplementasikan algoritma DEFLATE. Perbedaan utamanya terletak pada strukturnya:
LZMA, yang populer melalui 7-Zip, adalah evolusi penting dari keluarga Lempel-Ziv. LZMA menggunakan kamus yang jauh lebih besar (hingga 4 GB) dibandingkan LZ77/DEFLATE (32 KB). Selain itu, LZMA menggunakan range coder (varian canggih dari pengkodean aritmetika) dan model rantai Markov untuk memprediksi bit berikutnya, menghasilkan kompresi yang substansial pada biaya penggunaan memori dan waktu kompresi yang lebih tinggi. LZMA ideal untuk pengarsipan jangka panjang di mana waktu kompresi tidak sepenting rasio kompresi yang tinggi.
Brotli, dikembangkan oleh Google, dirancang secara spesifik untuk kompresi data web nir-hilang. Brotli menggabungkan varian LZ77, pengkodean Huffman, dan—yang paling penting—kamus kata yang telah ditentukan sebelumnya. Kamus ini berisi ribuan kata dan frasa umum yang ditemukan di HTML, CSS, dan JavaScript. Dengan menggunakan kamus yang telah ada, kompresi dapat langsung mengganti frasa panjang dengan referensi pendek, meningkatkan kecepatan dan efisiensi kompresi secara signifikan dibandingkan GZIP, terutama pada tingkat kompresi yang lebih tinggi.
Kompresi real-time, seperti yang dilakukan oleh GZIP atau Brotli pada HTTP, adalah tulang punggung internet modern. Mengompresi data web mengurangi bandwidth yang dibutuhkan server dan mempercepat waktu pemuatan bagi pengguna. Diperkirakan bahwa sebagian besar lalu lintas HTTP yang bersifat tekstual dikompresi setidaknya 70%, yang merupakan penghematan miliaran gigabyte data setiap harinya.
Dalam aplikasi dunia nyata, memilih algoritma kompresi yang tepat selalu merupakan tindakan menyeimbangkan. Tidak ada satu pun algoritma yang unggul dalam segala hal. Keputusan didasarkan pada tiga variabel utama:
Rasio kompresi adalah perbandingan antara ukuran data asli dan ukuran data terkompresi. Rasio yang lebih tinggi berarti penghematan ruang yang lebih besar. Teknik berkehilangan selalu memberikan rasio yang jauh lebih tinggi (misalnya, 10:1 hingga 100:1) dibandingkan nir-hilang (misalnya, 2:1 hingga 5:1). Namun, mencapai rasio yang ekstrem dalam kompresi nir-hilang sering kali memerlukan waktu komputasi yang sangat lama, seperti yang terlihat pada kompresor 7z tingkat tertinggi.
Untuk aplikasi real-time, seperti streaming video, kompresi harus dilakukan dengan cepat (low latency). Algoritma seperti LZ4 sangat cepat dalam kompresi dan dekompresi, meskipun rasio kompresinya mungkin lebih rendah. Sebaliknya, kompresi arsip (seperti LZMA) dapat menghabiskan waktu berjam-jam untuk mengompresi data besar, karena tujuannya adalah efisiensi ruang maksimum, bukan kecepatan.
Seringkali, proses dekompresi lebih penting daripada kompresi. Jika dekompresi cepat, pengguna akhir dapat mengakses data dengan lebih cepat. Misalnya, DEFLATE dirancang agar dekompresinya sangat cepat, meskipun proses kompresinya sendiri mungkin memakan waktu lebih lama.
Algoritma canggih yang menggunakan kamus besar (misalnya LZMA) memerlukan alokasi memori yang signifikan. Dalam lingkungan terbatasi memori (embedded systems atau perangkat IoT), algoritma yang ringan seperti RLE atau varian LZ yang dimodifikasi harus digunakan. Selain itu, kompresi yang intensif secara komputasi (seperti H.265) dapat menguras daya baterai pada perangkat seluler, memaksa pengembang untuk menemukan titik tengah antara kualitas, rasio, dan konsumsi energi.
Pilihan mode operasi juga krusial. Beberapa format kompresi (seperti ZIP) dapat diakses secara acak (random access), memungkinkan akses ke file individu tanpa mendekode seluruh arsip. Format lain (seperti GZIP) dirancang sebagai aliran data (stream) dan harus didekompresi secara berurutan.
Meskipun kita telah mencapai efisiensi luar biasa dalam mengompresi data, terutama media, kita masih menghadapi tantangan fundamental, baik secara teoritis maupun praktis.
Teorema Entropi Shannon menetapkan batas atas teoritis untuk kompresi nir-hilang. Tidak mungkin untuk mengompresi data di bawah batas entropinya secara konsisten dan tetap mempertahankan sifat nir-hilang. Jika sebuah file dikompresi melebihi batas ini, ia akan menghasilkan data korup karena informasi esensial yang membedakan simbol akan hilang.
Beberapa algoritma modern berusaha mendekati batas Shannon dengan menggunakan model probabilistik kontekstual yang sangat kompleks (misalnya, pengkodean aritmetika orde tinggi atau Context Mixing). Namun, karena data yang diproses tidak pernah benar-benar acak dalam konteks dunia nyata (misalnya, bahasa Inggris memiliki probabilitas tertentu setelah huruf 'Q'), selalu ada ruang untuk optimasi, tetapi batas entropi tetap menjadi tembok yang tidak dapat ditembus.
Satu tantangan praktis adalah mencoba mengompresi file yang sudah terkompresi, seperti file ZIP atau gambar JPEG. Hasilnya biasanya marginal atau bahkan negatif (ukuran file malah bertambah). Hal ini terjadi karena proses kompresi awal menghilangkan sebagian besar redundansi, mengubah data yang awalnya berpola menjadi data yang mendekati keacakan murni (entropi tinggi). Ketika algoritma kompresi kedua diterapkan, ia tidak menemukan pola yang cukup untuk diganti, dan overhead dari kamus atau tabel kodenya sendiri dapat menyebabkan pembengkakan ukuran file.
Data yang paling sulit dikompresi adalah data yang dienkripsi dengan baik. Enkripsi yang kuat secara sengaja dirancang untuk mengubah data menjadi sesuatu yang statistiknya sepenuhnya acak, menghilangkan semua pola yang dapat dieksploitasi oleh kompresor. Data dari beberapa jenis sensor atau instrumen ilmiah yang menghasilkan data acak atau memiliki noise intrinsik yang tinggi juga menghadapi kendala kompresi yang serupa.
Arah penelitian kompresi di masa depan mulai bergeser dari pengkodean bit ke pemahaman konten. Kompresi berbasis pembelajaran (Machine Learning Compression) atau Kompresi Semantik menggunakan model AI, khususnya jaringan saraf (neural networks), untuk memprediksi informasi yang hilang, terutama dalam kompresi berkehilangan.
Alih-alih hanya mengompresi piksel, AI dapat mengompresi "makna" atau "fitur" gambar. Misalnya, alih-alih menyimpan setiap piksel wajah, kompresor mungkin menyimpan deskripsi geometris wajah dan menggunakan AI di sisi dekompresi untuk meregenerasi detail visual dengan kualitas yang jauh lebih tinggi daripada yang dimungkinkan oleh algoritma berbasis DCT tradisional, menghasilkan rasio kompresi yang belum pernah terjadi sebelumnya untuk media berkehilangan.
Salah satu contoh yang sedang berkembang adalah MPEI (MPEG-I), yang mencari cara untuk mengompresi representasi visual dan spasial 3D (misalnya, point cloud) untuk realitas virtual dan augmented. Ini memerlukan algoritma yang tidak hanya cepat, tetapi juga adaptif terhadap bagaimana pengguna bergerak dan melihat dunia digital.
Mengompresi data, baik secara nir-hilang maupun berkehilangan, adalah seni dan ilmu yang berharga, mendasari hampir semua aspek komunikasi dan penyimpanan informasi modern. Dari teks kecil yang dikompresi oleh Brotli saat menjelajah web hingga film blockbuster yang distreaming dalam format H.265 yang sangat efisien, kompresi adalah mesin tak terlihat yang memungkinkan efisiensi dan kecepatan. Pemahaman mendalam tentang teori entropi, eksploitasi redundansi melalui kamus, dan pemanfaatan keterbatasan indra manusia melalui psikoakustik dan DCT, memungkinkan para insinyur untuk terus mendorong batas-batas efisiensi data.
Ketika kita terus menghasilkan data dengan laju yang eksponensial, penelitian dan pengembangan dalam mengompresi data akan tetap menjadi prioritas utama. Evolusi dari algoritma sederhana RLE menuju kompleksitas DEFLATE, LZMA, dan akhirnya model kompresi berbasis AI, menunjukkan bahwa perjalanan untuk menyimpan dan mentransmisikan informasi secara optimal masih terus berlangsung, memastikan bahwa dunia digital kita tetap dapat dikelola, diakses, dan cepat.
Efek kumulatif dari semua teknik ini sangatlah besar. Bayangkan jika setiap berkas di internet tidak dikompresi; kapasitas penyimpanan yang dibutuhkan akan melampaui kemampuan industri perangkat keras untuk memproduksinya, dan jaringan komunikasi akan macet seketika. Oleh karena itu, mengompresi bukan sekadar fitur opsional, melainkan fondasi vital yang tak terpisahkan dari ekosistem teknologi informasi global, sebuah upaya berkelanjutan dalam menghadapi ledakan informasi yang tak terhindarkan.
Melalui proses yang tampaknya sederhana—mengganti urutan panjang dengan kode pendek—kita berhasil mengatasi batasan fisik dan memperluas jangkauan informasi hingga ke pelosok dunia, menandai kompresi sebagai salah satu pencapaian rekayasa perangkat lunak yang paling signifikan dan mendasar.
***
Pemahaman mengenai LZ77 memerlukan penekanan pada konsep window geser (sliding window). Window geser adalah kunci untuk kompresi adaptif dan cepat. Biasanya, window ini dibagi menjadi dua bagian: search buffer (misalnya 32 KB) dan look-ahead buffer (misalnya 256 byte). Search buffer adalah kamus data yang sudah dikodekan dan menjadi sumber untuk mencari kecocokan. Look-ahead buffer adalah data yang akan dikodekan berikutnya.
Proses encoding iteratif. Algoritma mengambil awalan terpanjang dari look-ahead buffer dan mencoba mencocokkannya dalam search buffer. Setelah kecocokan terbaik (terpanjang) ditemukan, algoritma mengeluarkan token. Token tersebut bisa berupa literal byte tunggal (jika tidak ada kecocokan yang ditemukan, atau kecocokan terlalu pendek) atau tupel (jarak, panjang).
Setelah token dikeluarkan, window geser maju (geser). Jika token tersebut adalah tupel (10, 5), artinya 10 byte dari search buffer disalin dan 5 byte data telah dikodekan. Maka, window geser akan bergeser 5 byte ke depan. Ini memastikan bahwa search buffer selalu diisi dengan data yang paling relevan baru-baru ini diproses. Mekanisme ini memungkinkan LZ77 untuk bekerja sebagai algoritma adaptif, yang berarti kamusnya selalu diperbarui secara dinamis tanpa perlu penyimpanan overhead yang besar.
Dalam DEFLATE, jarak maksimum yang didukung oleh LZ77 adalah 32.768 byte (32 KB), dan panjang kecocokan maksimum adalah 258 byte. Keterbatasan ini adalah hasil dari kompromi desain untuk menjaga dekompresi tetap sangat cepat dan kebutuhan memori rendah, menjadikannya ideal untuk aplikasi jaringan di mana kecepatan adalah yang terpenting.
Pengkodean aritmetika (Arithmetic Coding) berbeda secara fundamental dari Huffman karena ia tidak memecah data menjadi kode integer bit-by-bit. Sebaliknya, ia memetakan seluruh aliran data menjadi satu titik fraksional tunggal. Ini dicapai dengan membagi rentang [0, 1) secara berturut-turut berdasarkan probabilitas simbol yang masuk.
Misalnya, jika data berisi simbol A (probabilitas 0.6) dan B (probabilitas 0.4). Rentang awal adalah [0, 1).
Proses ini berlanjut. Setelah semua simbol dikodekan, interval akhirnya sangat kecil. Angka biner terpendek yang dapat mewakili interval tersebut (biasanya titik tengahnya) adalah kode terkompresi. Karena pengkodean aritmetika dapat menggunakan probabilitas non-integer (berbeda dengan Huffman yang terbatas pada probabilitas 1/2^k), ia dapat mencapai efisiensi yang lebih dekat ke batas entropi teoritis. Kerugiannya adalah ia secara historis dilindungi oleh paten (yang telah kedaluwarsa) dan lebih kompleks untuk diimplementasikan dan didekodekan dibandingkan Huffman.
Matriks Kuantisasi (Q-matrix) adalah jantung dari kompresi lossy JPEG. Matriks 8x8 ini adalah peta penentu seberapa banyak informasi yang akan dibuang. Koefisien DCT di setiap blok dibagi elemen demi elemen oleh Q-matrix. Semakin besar nilai dalam Q-matrix pada posisi tertentu, semakin parah kuantisasi (pembulatan) yang terjadi pada koefisien DCT di posisi itu.
Secara default, Q-matrix memiliki nilai-nilai kecil di sudut kiri atas (frekuensi rendah) dan nilai-nilai yang jauh lebih besar di sudut kanan bawah (frekuensi tinggi). Nilai besar ini mencerminkan pengetahuan psikovisual bahwa mata manusia mentolerir kehilangan detail tekstur halus. Faktor kualitas (biasanya 1 hingga 100) yang diatur pengguna tidak secara langsung mengubah setiap nilai dalam Q-matrix, tetapi mengalikan atau membagi seluruh matriks dengan faktor skala, yang secara efektif mengontrol tingkat agresivitas kuantisasi. Semakin tinggi faktor kualitas (misalnya 95), semakin kecil angka-angka dalam matriks kuantisasi, dan semakin sedikit pembulatan yang terjadi.
Keberhasilan JPEG terletak pada standardisasi Q-matrix, yang memungkinkan pertukaran gambar di berbagai platform. Meskipun kuantisasi menghasilkan kehilangan yang ireversibel, ia menghasilkan sejumlah besar nol, yang merupakan target sempurna untuk kompresi nir-hilang tahap akhir (Run-Length Encoding dan Huffman), sehingga mencapai rasio kompresi total yang fantastis.
Dalam kompresi video, terutama yang menggunakan P-frame dan B-frame, dibutuhkan struktur yang terorganisir untuk urutan frame. Struktur ini disebut Group of Pictures (GOP). GOP mendefinisikan urutan frame I, P, dan B.
GOP yang panjang (misalnya 60 frame) akan menghasilkan rasio kompresi yang sangat tinggi karena ia bergantung pada lebih banyak prediksi. Namun, ia memiliki dua kelemahan utama:
Oleh karena itu, dalam streaming dengan latensi rendah, GOP cenderung lebih pendek (misalnya, I-frame setiap 1-2 detik), sementara dalam arsip video berkualitas tinggi, GOP mungkin lebih panjang untuk memaksimalkan rasio kompresi. Pengaturan GOP yang optimal adalah kompromi kompleks antara efisiensi, kecepatan dekompresi, dan ketahanan terhadap kesalahan transmisi.
***