10 December 2025

Video Coding 101: Perkenalan

“Video coding adalah seni dan ilmu mengompresi video untuk penyimpanan dan transmisi yang efisien.”

Apa itu Video Coding?

Video coding adalah process mengompresi video agar ukuran file menjadi lebih kecil. Proses video coding ini sangat penting karena video mentah atau raw memiliki ukuran file yang sangat besar yang membuat video sulit untuk disimpan dan ditransmisikan ke internet.

Kenapa belajar Video Coding?

Secara pribadi, gw sendiri lgi ngerjain projek yang melibatkan video coding walaupun tidak mengerjakan video coding itu sendiri. Tetapi gw penasaran sama gimana caranya video coding itu bekerja. Jadi tulisan ini dibuat sebagai dokumentasi gw selama belajar video coding.

Kenapa video perlu di-compress?

Video mentah atau raw memiliki ukuran file yang sangat besar. Misalnya, satu detik video 1080p pada 25fps dalam format raw bisa berukuran sekitar 155MB dengan asumsi sensor kamera yang digunakan adalah RGB dengan perhitungan 1920 1080 3 8 25 = 1244160000 bit. Kalo satu detik video aja bisa 155MB lebih kyanya dengan kecepatan internet kita yang sekarang kita cuma bisa nonton Youtube dengan resolusi paling rendah. Jadi video perlu di-compress, dan proses kompresi saat ini sudah sangat efisien, bahkan video 1080p bisa di-compress menjadi hanya beberapa KB saja. Di salah satu projek yang sekarang gw kerjain, untuk satu detik video 1080p menghasikan sekitar 700KB aja, yang artinya sudah di-compress sekitar 260 kali lipat.

Kompresi

Gw selalu mention kalo video coding itu adalah proses kompresi video. Kompresi adalah proses mengurangi ukuran file video dengan menghilangkan data yang tidak penting atau redundan. Ada dua jenis kompresi yang umum digunakan dalam video coding: kompresi lossy dan kompresi lossless. Kompresi lossy menghilangkan beberapa data dari video untuk mengurangi ukuran file, sedangkan kompresi lossless mempertahankan semua data asli dari video.

Contoh sederhana kompresi

Misal kita diberikan string seperti ini aaaaaaabbbaaaa, untuk mengompres string tersebut kita bisa menggunakan metode run-length encoding (RLE) yang merupakan salah satu metode kompresi sederhana. Dengan RLE, kita bisa mengompres string tersebut menjadi 7a3b4a, yang artinya ada 7 karakter ‘a’, diikuti oleh 3 karakter ‘b’, dan diakhiri dengan 4 karakter ‘a’. Dengan cara ini, kita berhasil mengurangi ukuran string dari 14 karakter menjadi hanya 6 karakter. Namun, perlu diingat bahwa metode RLE ini hanya efektif untuk string dengan banyak karakter yang berulang. Jika string tersebut memiliki banyak variasi karakter, metode ini mungkin tidak akan memberikan hasil kompresi yang signifikan. Kompresi sederhana ini juga bisa diaplikasikan pada video coding, dimana data yang berulang atau tidak penting bisa dihilangkan untuk mengurangi ukuran file video. Tapi ya pastinya metode kompresi yang digunakan pada video coding jauh lebih kompleks daripada RLE ini.

Codec

Codec adalah istilah yang paling penting sering kita denger kalo ngomongin video coding. Codec adalah singkatan dari “coder-decoder” atau “compressor-decompressor”. Codec adalah algoritma atau metode yang digunakan untuk mengompresi dan mendekompresi video. Ada banyak jenis codec yang berbeda, masing-masing dengan kelebihan dan kekurangan sendiri. Beberapa codec populer termasuk H.264, H.265 (HEVC), VP9, dan AV1. Codec paling banyak dan umum digunakan sekarang ini H.264, karena codec ini sudah lama ada dan didukung oleh hampir semua device dan platform. Untuk tulisan ini dan kedepannya gw bakal fokus belajar H.264 dulu karena ini yang paling populer digunakan dan yang gw butuhin di projek gw sekarang.