Hesapladığınız, ham, sıkıştırılmamış bir videonun bit hızıdır. Bunları genellikle araştırma veya diğer özel uygulamalar dışında bulamazsınız. Yayıncılar bile, tipik YouTube videonuzdan çok daha yüksek bir bit hızında da olsa sıkıştırılmış video kullanır.
Dolayısıyla, video kalitesinin videonun nasıl sıkıştırıldığıyla çok ilgisi vardır. Ne kadar çok sıkıştırırsanız, çerçeve başına o kadar az bit gerekir. Ayrıca, ne kadar çok sıkıştırırsanız, kalite o kadar kötü olur. Şimdi, bazı videoların sıkıştırılması diğerlerinden daha kolay - özünde, bu yüzden aynı çözünürlük ve kare hızına sahip olmalarına rağmen daha düşük bir bit hızına sahipler.
Bunun neden olduğunu anlamak için video sıkıştırmanın kullandığı iki ana ilkenin farkında olmanız gerekir. Bunlara "mekansal" ve "zamansal artıklık" denir.
Mekansal artıklık
Doğal içerik gösteren görüntülerde uzamsal artıklık vardır. JPEG'in bu kadar iyi çalışmasının nedeni budur - piksel blokları birlikte kodlanabildiğinden görüntü verilerini sıkıştırır. Örneğin, bunlar 8 × 8 pikseldir. Bunlara "makro bloklar" denir.
Modern video codec bileşenleri aynı şeyi yapar: Temelde bir kareyi blok blok sıkıştırmak için JPEG'e benzer algoritmalar kullanırlar. Artık piksel başına bitleri değil, makro blok başına bitleri saklıyorsunuz çünkü pikselleri daha büyük gruplarda "özetliyor". Bunları özetleyerek, algoritma insan gözü tarafından görülemeyen bilgileri de atacaktır - bu, bit hızının çoğunu azaltabileceğiniz yerdir. Verileri ölçerek çalışır . Bu, daha algılanabilir frekansları koruyacak ve göremediklerimizi "atacak". Niceleme faktörü çoğu kodekte "QP" olarak ifade edilir ve kalite için ana kontrol düğmesi.
Artık devam edebilir ve daha önce aynı görüntüde kodlanmış makro bloklardan makro blokları tahmin edebilirsiniz . Buna intra-tahmin denir . Örneğin, gri bir duvarın bir kısmı çerçevenin sol üst köşesinde zaten kodlanmıştı, bu yüzden bu makro bloğu aynı çerçevede tekrar kullanabiliriz, örneğin hemen yanındaki makro bloğu için. Sadece bir öncekine olan farkı saklayacağız ve verileri kaydedeceğiz. Bu şekilde, birbirine çok benzeyen iki makro bloğu kodlamamız gerekmez.
Bit hızı neden aynı görüntü boyutu için değişiyor? Bazı görüntüleri kodlamak diğerlerinden daha kolaydır. Uzamsal aktivite ne kadar yüksek olursa, o kadar çok kodlamanız gerekir. Pürüzsüz dokular ayrıntılı olanlardan daha az bit alır. Aynı şey iç tahmin için de geçerlidir: Gri duvarın bir çerçevesi, diğerlerini tahmin etmek için bir makro bloğu kullanmanıza izin verirken, akan su çerçevesi o kadar iyi çalışmayabilir.
Geçici artıklık
Bunun nedeni, başka bir çerçeveyi takip eden bir çerçevenin muhtemelen öncekine çok benzemesi. Çoğunlukla, sadece küçük bir parça değişir ve onu tam olarak kodlamak mantıklı olmaz. Video kodlayıcıların yaptığı, sadece makro bloklar için yapabildikleri gibi, sonraki iki kare arasındaki farkı kodlamaktır .
Wikipedia'nın hareket tazminatıyla ilgili makalesinden bir örnek alarak , bunun orijinal çerçeveniz olduğunu varsayalım:
O zaman bir sonraki kareye olan fark sadece şudur:
Enkoder şimdi sadece gerçek farklılıkları saklıyor, piksel piksel değerleri değil. Bu yüzden her kare için kullanılan bitler her seferinde aynı değildir. Bu "fark" kareleri tam olarak kodlanmış bir kareye bağlıdır ve bu nedenle modern kodekler için en az iki tür çerçeve vardır:
- I-kareleri (ana kareler olarak da bilinir) - bunlar tam olarak kodlanmış olanlardır
- P-çerçeveleri - bunlar sadece farkı saklayanlardır
Bazen bir videoya I-kareleri eklemeniz gerekir. Gerçek bit hızı, kullanılan I-kare sayısına da bağlıdır. Dahası, sonraki iki kare arasında hareket farkı ne kadar fazla olursa, kodlayıcının o kadar fazla depolaması gerekir. Hareket eden "hiçbir şey" videosunu kodlamak, bir spor videosundan daha kolay olacaktır ve kare başına daha az bit kullanacaktır.