Vidlora rehberi
Video sıkıştırma nasıl çalışır
Sıkıştırılmamış video çok büyüktür: 30 fps'de bir dakikalık 1080p, verimli renk örneklemesiyle bile yaklaşık 5,6 GB eder. Codec'ler iki olgudan yararlanarak bunu pratik hâle getirir: komşu pikseller birbirine benzer ve ardışık kareler birbirine benzer. Bu rehber tahmin, anahtar kareler, nicemleme ve bit hızı kontrolü dahil modern sıkıştırmanın arkasındaki ana fikirleri açıklıyor; böylece bazı videoların neden kolayca küçüldüğünü, bazılarının neden küçülmediğini ve tekrarlı yeniden kodlamanın kaliteyi neden bozduğunu görebilirsiniz.
7 dakikalık okuma
Ham video neden bu kadar büyük
Bir 1080p karede 1920 x 1080 = 2.073.600 piksel vardır. Yaygın 4:2:0 düzeninde 8 bit renk olarak saklandığında bu kare başına yaklaşık 3,1 MB eder. Saniyede 30 karede bir saniye 93 MB, bir dakika yaklaşık 5,6 GB eder; tam RGB ile neredeyse 11 GB olurdu. Bunu yayınlamak yaklaşık 750 Mbps gerektirirdi; bu ev interneti için çok fazladır. Tipik bir yayın 1080p videosu 5 Mbps'de çalışır, yani kabaca 150 kat daha küçüktür. Sıkıştırma bunu, insanların en az fark edeceği bilgiyi atarak ve geri kalanı verimli biçimde tanımlayarak başarır. Kazancın nereden geldiğini anlamak, video ayarlarına ilişkin pratik tavsiyelerin çoğunu açıklar.
Kare içinde uzamsal sıkıştırma
Tek bir kare içinde codec'ler görüntüyü bloklara böler (H.264'te makrobloklar, H.265 ve AV1'de 64x64'e kadar kodlama ağacı birimleri). Her blok için içeriği, daha önce çözülmüş komşu piksellerden tahmin eder ve yalnızca farkı saklar. Berrak mavi bir gökyüzü kenarından neredeyse mükemmel tahmin edilir; bu yüzden çok az maliyetlidir. Kalan farklar, JPEG'de kullanılana benzer bir dönüşümden geçer; bu dönüşüm piksel desenlerini frekans bileşenlerine çevirir. İnce ayrıntı yüksek frekanslarda bulunur ve kodlayıcı bunları azaltabilir veya atabilir. Düz alanların neden iyi sıkıştığını, yaprak, su ve konfeti gibi ayrıntılı dokuların neden pahalı olduğunu bu açıklar.
Kareler arasında zamansal sıkıştırma
Bir videonun çoğu bir kareden diğerine tekrarlanır; bu yüzden codec'ler tüm resimleri değil değişiklikleri saklar. Her blok için kodlayıcı en iyi eşleşmeyi önceki karede arar ve bir hareket vektörü kaydeder; yani bu bloğu üç piksel sola kaydır, artı küçük bir düzeltme. Durağan arka planlar neredeyse hiçbir şeye mal olmaz; konuşan bir kişiye çevrilmiş tripoddaki bir kamera çok iyi sıkışır. Elde çekilen görüntüler, kaydırma çekimleri, patlamalar, yağmur ve film greni bu tahmini bozar; çünkü değişiklikler büyük ve öngörülemezdir. Aynı çözünürlük ve süreye sahip iki videonun boyutunun birkaç kat farklı olabilmesinin ve durağan bir slayt gösterisi kaydının bir futbol maçına göre minik olmasının nedeni budur.
I-kareler, P-kareler ve B-kareler
Kareler gruplar hâlinde düzenlenir. Bir I-kare (anahtar kare) tek başına, durağan bir görüntü gibi kodlanır ve en büyüğüdür. Bir P-kare önceki karelerden tahmin eder. Bir B-kare hem önceki hem sonraki karelerden tahmin edebilir; bu da onu en küçük yapar. Tipik bir görüntü grubu, arada P ve B kareleriyle her 2-10 saniyede bir anahtar kare içerebilir. Anahtar kareler, kod çözme bunlardan herhangi birinde başlayabildiği için gezinmeye ve hata kurtarmaya imkân tanır. Daha uzun aralıklar yer kazandırır ama atlamayı yavaşlatır ve hata kurtarmayı kötüleştirir. Yayın hizmetleri hızlı geçiş için çoğunlukla 2 saniyelik aralıklar kullanır; arşiv dosyaları ise daha uzunlarını. Bu yapı, kayıpsız kırpmanın neden anahtar karelere oturduğunu da açıklar.
Nicemleme: kalitenin gerçekte kaybolduğu yer
Dönüşümden sonra kodlayıcı katsayıları bir nicemleme adımına böler ve yuvarlar. Daha büyük adımlar daha fazla küçük katsayıyı sıfıra iter; bu veriyi küçültür ama ayrıntıyı giderir. Çoğunlukla QP olarak ifade edilen nicemleyici, kaybın ana kaynağıdır. Düşük QP'de video neredeyse şeffaftır; yüksek QP'de kareli yapılar, yani köşeli kenarlar, keskin kenarlar çevresinde halkalanma, geçişlerde bantlaşma ve bulanıklaşan dokular görürsünüz. İyi kodlayıcılar nicemlemeyi kare içinde değiştirir; yüzlere daha çok, hareketli arka planlara daha az harcar; zaman içinde de sonraki karelerce referans alınacak sahnelere daha çok harcar. Ön ayarlar gibi kodlayıcı ayarları bu kararların ne kadar iyi verildiğini etkiler, sürecin kayıplı olup olmadığını değil.
Bit hızı, CRF ve hız kontrolü
Bit hızı, saniye başına kullanılan veridir. Kodlayıcılar bunu birkaç yolla kontrol eder. Sabit bit hızı (CBR) onu sabit tutar; sabit bant genişliğiyle canlı yayında yararlıdır. Ortalama bit hızı (ABR) toplam bir boyutu hedefler. Sabit hız faktörü (CRF) tutarlı kaliteyi hedefler ve bit hızının dalgalanmasına izin verir; karmaşık sahnelerde daha çok, kolay sahnelerde daha az bit kullanır. CRF, sakladığınız veya paylaştığınız dosyalar için olağan seçimdir. İki geçişli bir kodlama önce tüm videoyu analiz eder ve ardından bitleri daha hassas dağıtır; tam bir dosya boyutunu yakalamanız gerektiğinde yararlıdır. x264 için yaklaşık 6'lık bir CRF farkı bit hızını kabaca yarıya indirir veya ikiye katlar. Vidlora gibi platformların ham bit hızı yerine bir kalite hedefi sunmasının nedeni budur.
Yeni codec'ler: H.265, VP9 ve AV1
Her codec nesli daha akıllı tahmin ve daha büyük, daha esnek bloklar ekler. H.265 (HEVC), benzer kalite için H.264'ten tipik olarak yüzde 30-50 daha az bit hızı gerektirir. VP9 kabaca aynı aralıktadır. AV1, H.265'e göre yüzde 20-30 daha tasarruf sağlayabilir ancak çok daha fazla kodlama hesaplaması ister. Bedeller kodlama süresi, çözme gücü ve uyumluluktur: eski donanımlar bunları akıcı çözemeyebilir ve lisanslama codec'ler arasında farklıdır. H.264, neredeyse her cihaz donanımda çözdüğü için temel olmaya devam eder. Yeni codec'ler, ılımlı bir yüzde tasarrufun bile çok sayıda izleyici boyunca büyük miktarda veri anlamına geldiği 4K, HDR ve bant genişliği sınırlı yayınlarda öne çıkar.
Nesil kaybı ve pratik dersler
Sıkıştırma bilgiyi attığı için her yeniden kodlama zaten bozulmuş bir görüntüden başlar ve üstüne yeni hatalar ekler. Birkaç nesilden sonra kareleşme, renk kaymaları ve hiçbir sonraki ayarın geri alamayacağı bir bulanıklık görürsünüz. Pratik kurallar buradan çıkar. Orijinal kaydı saklayın ve paylaşım kopyalarını ondan bir kez yapın. Akış kopyalamalı kırpma ve kapsayıcı yeniden paketleme gibi yeniden kodlamadan kaçınan işlemleri tercih edin. Farklı boyutlarda birkaç kez değil, nihai çözünürlükte kodlayın. Hedefe uyan bir kalite hedefi kullanın; çünkü ağır sıkıştırılmış bir dosyayı onu yeniden sıkıştıran bir platforma yüklemek hasarı katlar. Son olarak, daha fazla bit hızının zaten kaybolmuş ayrıntıyı geri getiremeyeceğini, ancak daha fazla kaybı durdurabileceğini unutmayın.
Ücretsiz video indiriciyi deneyin