Yang Anda hitung adalah bitrate untuk video mentah dan tidak terkompresi. Anda biasanya tidak akan menemukan ini kecuali dalam penelitian atau aplikasi khusus lainnya. Bahkan penyiar menggunakan video terkompresi, meskipun pada bitrate jauh lebih tinggi daripada video YouTube khas Anda.
Jadi, kualitas video banyak hubungannya dengan bagaimana video itu dikompresi. Semakin banyak Anda kompres, semakin sedikit bit yang dibutuhkan per frame. Juga, semakin Anda kompres, semakin buruk kualitasnya. Sekarang, beberapa video jauh lebih mudah untuk dikompres daripada yang lain - pada dasarnya, inilah sebabnya mereka memiliki bitrate yang lebih rendah walaupun mereka memiliki resolusi dan framerate yang sama.
Untuk memahami mengapa hal ini terjadi, Anda harus mengetahui dua prinsip utama penggunaan kompresi video. Ini disebut "spasial" dan "redundansi temporal".
Redundansi spasial
Redundansi spasial ada dalam gambar yang menunjukkan konten alami. Inilah alasan JPEG bekerja dengan sangat baik - ini memampatkan data gambar karena blok piksel dapat dikodekan bersama. Ini adalah 8 × 8 piksel, misalnya. Ini disebut "makroblok".
Codec video modern melakukan hal yang sama: Mereka pada dasarnya menggunakan algoritma yang mirip dengan JPEG untuk mengompres bingkai, blok demi blok. Jadi Anda tidak menyimpan bit per piksel lagi, tetapi bit per macroblock, karena Anda "meringkas" piksel ke dalam grup yang lebih besar. Dengan meringkasnya, algoritme juga akan membuang informasi yang tidak terlihat oleh mata manusia - di sinilah Anda dapat mengurangi sebagian besar bitrate. Ini bekerja dengan mengukur data. Ini akan mempertahankan frekuensi yang lebih mudah dipahami dan "membuang" yang tidak bisa kita lihat. Faktor kuantisasi dinyatakan sebagai "QP" di sebagian besar codec, dan itu adalah tombol kontrol utama untuk kualitas.
Anda sekarang bahkan dapat melanjutkan dan memprediksi makroblok dari makroblok yang sebelumnya telah dikodekan dalam gambar yang sama. Ini disebut prediksi intra . Sebagai contoh, bagian dari dinding abu-abu sudah dikodekan di sudut kiri atas bingkai, jadi kita bisa menggunakan makroblok itu di frame yang sama lagi, misalnya untuk makroblok tepat di sebelahnya. Kami hanya akan menyimpan perbedaannya dengan yang sebelumnya dan menyimpan data. Dengan cara ini, kita tidak perlu menyandikan dua makroblok yang sangat mirip satu sama lain.
Mengapa bitrate berubah untuk ukuran gambar yang sama? Beberapa gambar lebih mudah untuk dikodekan daripada yang lain. Semakin tinggi aktivitas spasial, semakin banyak Anda harus menyandikan. Tekstur yang halus membutuhkan bit lebih sedikit daripada yang detail. Hal yang sama berlaku untuk prediksi intra: Bingkai dinding abu-abu akan memungkinkan Anda untuk menggunakan satu blok makro untuk memprediksi yang lainnya, sedangkan bingkai air yang mengalir mungkin tidak bekerja dengan baik.
Redundansi temporal
Ini ada karena bingkai yang mengikuti bingkai lain mungkin sangat mirip dengan pendahulunya. Sebagian besar, hanya sedikit perubahan kecil, dan itu tidak masuk akal untuk sepenuhnya menyandikannya. Apa yang dilakukan encoders video hanyalah mengkodekan perbedaan antara dua frame berikutnya, seperti yang bisa mereka lakukan untuk macroblocks.
Mengambil contoh dari artikel Wikipedia tentang kompensasi gerak , katakanlah ini adalah kerangka asli Anda:
Maka perbedaan ke frame berikutnya hanya ini:
Encoder sekarang hanya menyimpan perbedaan yang sebenarnya , bukan nilai pixel-by-pixel. Inilah sebabnya mengapa bit yang digunakan untuk setiap frame tidak sama setiap waktu. Frame "perbedaan" ini bergantung pada frame yang disandikan sepenuhnya, dan inilah mengapa setidaknya ada dua jenis frame untuk codec modern:
- I-frames (alias keyframes) - ini adalah yang sepenuhnya disandikan
- P-frame - ini adalah yang hanya menyimpan perbedaannya
Anda sesekali perlu memasukkan frame-I ke dalam video. Bitrate aktual juga tergantung pada jumlah I-frame yang digunakan. Selain itu, semakin banyak perbedaan gerak antara dua frame berikutnya, semakin banyak encoder yang harus disimpan. Video bergerak "tidak ada" akan lebih mudah untuk disandikan daripada video olahraga, dan menggunakan lebih sedikit bit per bingkai.