Anasayfa > Makaleler > Görüntü Kod Dönüştürmenin Temelleri – 1
Dijital Medyada Çekim, Çalışma Uyumluluğu ve Dağıtım
Bu yazıda iş akışınızda kod dönüştürme (transcoding) konusunda karar verebilmeniz için gereken temel kod dönüştürme bilgileri anlatılıyor. Farklı amaçlarla kullanılan dijital medya dosya tiplerinin unsurları, kod dönüştürmenin bu unsurlar üzerinde nasıl çalıştığı, bir formattan diğerine geçerken hangi sorunların ortaya çıkabileceği, farklı koşullarda kod dönüştürme için hangi iş akışlarının en etkin olacağı anlatılıyor.
Dijital medyanın laboratuvardan çıkıp gerçek uygulamalara geçmesinden bu yana otuz yıldan fazla zaman geçti ve haberleşmedeki bu devrim günümüzde devam ediyor. İlk gelişme, sıkıştırmasız LPCM dijital sesleri kaydeden, oynatım kaynağını yeniden yapılandıran kompakt disk (CD) oldu. Öte yandan dijital görüntü ile çoğu kayıt, depolama ve oynatma koşulunun bir dizi resmi eksiksiz doğrulukta tanımlamak için gereken veri kapasitesine sahip olmadıkları ortaya çıktı. Böylece bir görüntü kaynağını düzgün kaydederken, mümkün olduğunca az veri bant genişliği gerektirecek sıkıştırma/açma algoritmaları (kodek) geliştirme yarışı başladı.
İyi haber, bir sinyalin içerik algımızda en önemli kısımlarına bant genişliğini etkin olarak ayırıp dağıtan kodeklerin üretilebilmesi. Örneğin Apple tarafından iTunes yoluyla yaygınlaştırılan Advanced Audio Codec (AAC). Aslına sadakati çok titiz kişilerce şüpheyle karşılanabilir, ama 128 Kbps AAC, birçok koşulda çoğunluk için kabul edilebilir ses kalitesi sunuyor ve CD kalitesinde LPCM’nin (16 bit/44.1Khz) sadece on birde biri kadar bit hızı kullanıyor. Daha da etkileyicisi olan H.264 kodek yetenekleri, 8Mb/s veya daha düşük bit hızlarında 1080p HD malzemelerin kodlanmalarını destekleyip 250:1 veya üzeri oranda sıkıştırma yapması.
Başarı elbette rekabet ve zorluklarla geliyor. Kodekler dijital içeriklerin masa üstü, akıllı telefon gibi yeni alanlara yayılmasını mümkün kıldı. Her bir aygıtın kısıtlamaları, kodeğin performansını koşullara özgü ve belli bir platforma göre en uygun hale getirerek aşılabiliyor. Sonuç olarak özel amaçlı kodekler sürekli artıyor. Bazı kodekler içerik çekimi, bazıları kurgu ve post prodüksiyon, diğerleriyse depolama ve arşivleme için kullanılırken, hala daha fazlası büyük ekranlı televizyondan mobil aygıtlara kadar her ortamda izleyicilere dağıtım için kullanılıyor. İçerikler çoklu kurulumlarda kullanıldıkları için, kalitesini düşürmeden bir dijital formattan diğerine verimli olarak taşımak gittikçe daha fazla önem kazanıyor. Bu da kısaca kod dönüştürmenin amacı.
Muhtemelen kod dönüştürmenin önemini anlamanın en kolay yolu, onun olmadığı bir dünyayı hayal etmek. Örneğin bir yerel televizyon haber ekibinin yakalamayı başardığı çok önemli bir söyleşinin yapımını düşünelim. Haberi akşam bültenine yetiştirmeniz gerekiyor. Ne yazık ki ENG kameranızın dijital görüntü formatı, doğrusal olmayan kurgu sisteminizinkinden (NLE) farklı bir kodek kullanıyor. Bu durumda kurguya başlamadan önce bile kameradan ham çekimi oynatıp, gerçek zamanda sıkıştırmasını açarak aynı anda NLE’nin kullanabileceği formatta yeniden dijitalleştirebilirsiniz. Yayın sunucunuza kurgulanmış sürümünü sağlamak için aynı zorlu ve ağır yolu izlediğinizi, arşivleme için yeniden bir yedek kopya oluşturduğunuzu, ve istasyonun web sitesinden akış yayını için farklı aygıtlara göre farklı bit hızlarında yine bir dizi dosya oluşturduğunuzu düşünün. Süreç içinde ilerledikçe verimsizlik katlanarak artar.
Kod dönüştürme bu yorucu, verimsiz senaryoyu atlıyor. Pahalı görüntü yönlendiriciler ve anahtarlama masaları yerine standart IT donanımı kullanılarak programlar kodekten kodeğe gerçek zamandan daha hızlı çevrilebiliyor. Otomasyonu kolaylaştırıyor, çünkü sinyali yönlendirme ve kayıt ortamını taşıma gibi manuel adımlar içermiyor. Akıllıca uygulanan ve yönetilen kod dönüştürme, iş tamamlama hızını büyük oranda yükseltirken, kaliteyi koruyor.
Dijital medya formatları
Dijital medya dosya formatları ve kodeklerinin birinci kuralı, sayılarının sürekli artıyor olması. Geriye dönüp bakıldığında bazı eski formatların süreç içinde kayboldukları görülüyor, ama yine de bugün on beş, hatta beş yıl öncesine göre çok daha fazla formatın kullanımda olduğu da ortaya çıkıyor. Farklı gereksinimleri karşılamak için farklı formatlar ortaya çıkıyor, ama hepsi bazı temel özelikleri taşıyor.
En basit düzeyde hareketli görüntü yetenekli bir dosya formatı, en az üç tipte bileşen parçası için bir taşıyıcı veya paketleyici. Bir tip görüntü akış verisi, diğeri ses akış verisi, bu iki içerik tipinin temel akışları birlikte, dosyanın “özü” (essence) olarak anılıyor. Üçüncü bileşen olan malzeme verisi, asıl öz bilginin kendisi olmayıp, öz bilgi hakkında verilerden oluşuyor.
Malzeme verisi basit bir dosya ID’sinden, hak sahibi, sanatçı, oluşturma yılı gibi içerik hakkında bir dizi bilgiden oluşan her şey olabiliyor. Bu üçüne ilaveten taşıyıcı formatlar, DVD Video menülerinde ve altyazılarında kullanılan bindirme grafikleri gibi ek temel içerik akışlarını da destekleyebiliyor.
Şekil – Bir medya taşıyıcı dosyanın bileşenleri
Aşağıdakiler, bugün yaygın kullanılan taşıyıcı dosya tiplerine örnekler:
QuickTime MOV: Apple tarafından geliştirilen, platformlar arası bir multimedya formatı.
MPEG-2 Transport Stream ve Program Stream: Motion Pictures Expert Group tarafından geliştirilen, optik medya (DVD Video, Blu-ray Disc) ve dijital yayıncılıkta (ATSC) kullanılan dosya tipi.
WMV ve MP4: İnternet dağıtımı için.
GFX (General eXchange Format): Grass Valley tarafından geliştirilip SMPTE tarafından standartlaştırıldı.
LXF: Harris (bugün Imagine Communications) tarafından geliştirilen bir yayın sunucu formatı.
MXF (Material eXcahnge Format): SMPTE tarafından standartlaştırıldı.
Yukarıda listelenenler gibi taşıyıcı formatları, birçok yönden birbirlerinden farklı. Genel dosya seviyesinde bu farklılıklar arasında başlık yapısı (bir dosyanın başlangıcında, donanım aygıtı, yazılım algoritması ve dosyada bulunan veri tipini belirten bilgi), taşıyıcı içerisinde bileşen parçalarının organizasyonu, temel akışların paketlenme ve birleştirilme şekli, dosya seviyesinde malzeme verisinin miktarı ve organizasyonu, ve birden fazla dil için ses akışları veya farklı bit hızlarında (Apple HLS veya MPEG-DASH gibi uyarlamalı akış formatları) görüntü akışları gibi aynı anda birden fazla ses ve/veya görüntü akışı desteği bulunuyor.
Asıl bilgi seviyesinde format farklılıkları, temel akışların teknik özellikleriyle ilgili. Görüntü için bunlar kare boyutu (çözünürlük), kare şekli (görünüm en/boy oranı), kare hızı, renk derinliği, bit hızı gibi özellikler. Ses içinse örnek hızı, bit derinliği ve kanal sayısı.
Taşıyıcı dosya formatları destekledikleri malzeme verisinin tipi ve organizasyonu bakımından da hem dosya seviyesinde hem de akış seviyesinde çok farklılık gösteriyor. Bu bağlamda malzeme verisi genel olarak iki sınıfa ayrılıyor:
Yürütme malzeme verisi: Yürütücü aygıt tarafından kullanıma yönelik, içeriği izleyiciye düzgün sunma amaçlı, zaman senkronizasyonlu veri.
VBI gibi yazılar, SD çözünürlükte teletekst ve HD çözünürlükte VANC
VITC gibi zaman kodu
AFD gibi görünüm en/boy oranı
Kopyalamaya karşı koruma (CGMS)
İçerik malzeme verisi: İçeriği belli bir uygulama, iş akışı veya kullanımla ilgili bir şekilde tanımlar.
Web akışı için; başlık, açıklama, sanatçı
Televizyon reklamları için; Ad-ID, reklam veren, marka, ajans, başlık
Spor etkinlikleri için; etkinlik adı, takım adları, atlet isimleri
Dosya formatları çeşitli amaçlar düşünülerek tasarlanıyor, bu nedenle doğal olarak bu formatlar tarafından kullanılan malzeme verisi düzenleri tamamen aynı değil. Bir amaç için tasarlanan bir malzeme verisi düzeninin farklı amaç için tasarlanan bir düzenle aynı özellikleri taşımaması, kod dönüştürme sürecinde malzeme verisinin korunması işini çok karmaşık bir hale getirebiliyor.
Birçok durumda dosya formatları arasındaki en önemli fark, ve aralarında kod dönüştürme gerekmesinin nedeni, destekledikleri kodekler ve her formatın asıl verisini oluşturan görüntü ve ses akışlarına uygulanan sıkıştırma miktarı. Bu etkenler, her formatın tanımlanma amacına göre belirleniyor. Yaygın görüntü dosya formatları, kayıt, kurgu, arşiv, yayın sunucuları, dağıtım ve proxy formatları gibi altı farklı kullanım kategorisine ayrılıyor.
Bu farklı kategorilerde neden farklı sıkıştırma teknikleri kullanıldığını anlamak için, sıkıştırma işleminin nasıl çalıştığını hatırlayalım. Görüntüde sıkıştırma teknikleri, genellikle hareketli resimleri temsil etmek için gereken veri miktarını azaltmaya yönelik iki yaklaşımdan birine veya ikisine dayanıyor:
Kare içi (intra-frame) sıkıştırma, her bir kareyi saklamak için kullanılan veriyi azaltıyor.
Kareler arası (inter-frame) sıkıştırma, bir dizi karenin saklanması için kullanılan verileri azaltıyor.
Her iki sıkıştırma yaklaşımı, görüntünün yeterli miktarda fazlalık içerdiğini kabul ediyor. Örneğin belli bir kare içerisinde renk ve parlaklık değerleri aynı olan birçok bitişik piksek alanları olabiliyor. “Kayıpsız” kare içi sıkıştırma sadece bu alanları daha kısa ve öz olarak belirtiyor. Her bir piksel için değerleri tekrar etmek yerine, değerler ardışık piksel sayısıyla birlikte bir kez saklanabiliyor.
Daha fazla sıkıştırma gerekiyorsa, “kayıplı” sıkıştırma dünyasına girmeniz, yani orijinal görüntüyü mükemmel doğrulukta yeniden yapılandırmanız için ihtiyacınız olacak bilginin bir kısmını atmanız gerekiyor. Renk ve parlaklıkları benzeyen bitişik pikseller tıpatıp aynıymış gibi kabul edildiği için, toplam resmi tanımlamak için daha az veriye ihtiyaç duyuluyor. Bu teknik bant genişliği gereksinimlerini azaltırken, oynatım sırasında izleyicinin pürüzsüz renk geçişleri yerine bloklanma olarak adlandırılan sıkıştırma bozulmalarını görme şansını artırıyor.
Kareler arası sıkıştırma da fazlalık olduğunu kabul ediyor; bu kez formata ve özel kullanım durumuna bağlı olarak 3 kare kadar kısa veya yüzlerce kare uzunlukta bir” grup resim” (GOP) arasında. Her GOP’taki ilk kare (MPEG-2’de I-frame, H.264’te IDR Frame olarak adlandırılır) tam olarak saklanırken, ardından gelen karelerin (B-frame ve P-frame) sadece I-frame’den veya birbirlerinden farkları saklanıyor. Kareler arasında ne kadar çok fazlalık olursa, farklılıkları saklamak için o kadar az veri gerekiyor. Sınırlı bant genişliği daha fazla sıkıştırma gerektiriyorsa, iki kare arasındaki benzer bir piksel tıpatıp aynıymış gibi ele alınabiliyor, böylece fazlalık miktarı arttırılabiliyor. Kareler arası sıkıştırma toplam veri miktarında büyük ölçüde azaltmaya imkan veriyor, ama oynatımda diğer kareleri referans almadan bağımsız olarak yeniden yapılandırılabilen tek kare tipi I-frame oluyor.
Sadece kare içi sıkıştırma (üstte) yapan kodeklerle karşılaştırıldığında, kareler arası sıkıştırma (altta) çoğu kare için sadece kareler arası farkları saklayarak bit hızını azaltıyor.
Doğru aracı seçmek
Belirli bir dosya formatındaki görüntü akışı için kare içi ve kareler arası sıkıştırmanın kullanılması (veya kullanılmaması), çeşitli görevler için o formatın uygunluğu üzerinde doğrudan etkiye sahip. Kurgu için bir format seçiyorsanız, görüntü kodeğinin her kareye bağımsız etkileşimi desteklemesi gerekiyor, bu durumda kare içi sıkıştırma genellikle ideal seçenek. Uzun vadeli arşivlemeye yönelik bir format seçiyorsanız her kareye bağımsız erişim bir öncelik olmayıp, hem kare içi hem de kareler arası sıkıştırma yaparak bit hızı ve dosya boyutunu önemli oranda azaltabilirsiniz. Farklı ama benzer durumlar ses için de geçerli, desteklenen ses kodeklerindeki farklılıklar, yine farklı amaçlara uygunluğu etkiliyor.
Aşağıdaki örneklerde taşıyıcı formatlarının kullanıldığı farklı uygulama örnekleri ve bu uygulamalarda asıl veriyi (essence) sıkıştırmak için yaygın kullanılan kodekler var.
Kurgu uygulamalarında Apple ProRes, Avid DNxHD, Sony IMX kullanılıyor. Bu formatların sadece kare içi sıkıştırma kullanmaları nedeniyle, görüntü akışları her biri ayrı açılabilen tamamen I-frame karelerden oluşuyor. Kaynağın orijinal kalitesi korunuyor ve malzemenin belli kareler olarak aranması ve kurgulanması kolay oluyor. Fakat sonuçta bit hızları yüksek, 150 Mb/s, 220 Mb/s, hatta daha fazla olabiliyor. Görüntüye eşlik eden ses akışlarını kurgulamaya en kolay yaklaşım, sıkıştırılmamış LPCM olarak bırakmak.
Arşivleme uygulamaları yüksek kalite gerektirdiği için bir QuickTime veya AVI taşıyıcı içerisinde JPEG2000 veya DV görüntü temel akışları kullanılarak ele alınabiliyor. Fakat bellek kapasitesi gereksinimlerini azaltmak, sıklıkla her kareye bağımsız erişebilmekten daha öncelikli olduğu için, kareler arası sıkıştırma da tercih edilip 36 Mbps veya üzeri hızlarda MXF paketli MPEG-2 gibi Long-GOP (15 karelik gruplar) formatlar da kullanılabiliyor. Ses akışları genellikle PCM olarak bırakılıyor veya sekiz adede kadar ses kanalı kaydetmek için 2 tane 20 bit PCM kullanan Dolby E’ye kodlanabiliyor.
Yayın sunucu formatları Grass Valley K2, Harmonic Spectrum, Imagine Nexio gibi patentli sistemlerle kullanım için tasarlandı. Bu sunucular istasyonlar tarafından yayın vericisine veya kablo sinyal dağıtım sistemine sinyal göndermek için program çekme kaynağı olarak kullanılıyor. Kurgulanabilmeleri gerekmiyor. Tipik olarak Long-GOP MPEG-2 veya H.264 görüntü sıkıştırma uygulanıyor. Ses bazen sıkıştırılıyor, ya da sıkıştırılmayabiliyor.
Dağıtım, isteğe bağlı görüntü (VoD) için CableLabs MPEG-2 taşıma akışlarından (TS) masaüstü veya mobil aygıtlar yoluyla “yeni medyaya” dağıtım için uyarlamalı akış formatlarına (Apple HLS, Microsoft Smooth Streaming, Adobe HDS, MPEG-DASH) kadar farklı çeşitliliğe sahip bir kategori. Tek bir taşıyıcı farklı bit hızlarında ve 320x240, 1280x720 gibi çözünürlüklerde akışlar içerebiliyor. H.264 bu uygulama için yaygın bir görüntü kodeği. Ses için yaygın kullanılan kodekler arasında Dolby Digital (AC-3), DTS, Advanced Audio Coding (AAC), MP3, Windows Media Audio (WMA) var.
Proxy formatları yüksek kaliteli kaynak dosyalarını temsil eden yardımcı, pratik, büyük oranda sıkıştırılmış biçimleri olarak, bant genişliği veya oynatım gücü sınırlı iken hızlı ve kolay izlemeye imkan veriyorlar. Örneğin bir stok çekim kütüphanesi olası müşterilerine uygun sahneler üzerinde kolay dolaşma ve tarama imkanı sağlamak için Proxy dosyalar kullanabilir, daha sonra seçtikleri çekimlerin yüksek çözünürlüklü, az sıkıştırılmış sürümlerini verebilir. Benzer şekilde, güçlü kurgu sistemine sahip olmayan kurgu uzmanları yapımda istedikleri çekimlerin başlangıç ve bitiş zaman kodlarını hızla bulmak için Proxy kullanabilir. Öncelik dosyaları küçültmek olduğu için, Proxy dosyalarda tipik olarak kayıplı kareler arası görüntü sıkıştırma kullanılıyor.
Görüntü Kod Dönüştürmenin Temelleri – 2