H.264/MPEG-4 AVC

küçükresim|H.264 sıkıştırma standardı ile çekilmiş bir videodan bir görüntü. H.264 bir görüntü sıkıştırma standardıdır ve MPEG-4 Bölüm 10 ya da MPEG-4 AVC (Advanced Video Coding) in muadilidir. 2008 yılı itibarıyla, ITU-T, Video Coding Experts Group (VCEG), ISO/IEC (International Organization for Standardization/International Electrotechnical Commission) içindeki Moving Picture Experts Group (MPEG) tarafından oluşturulan Birleşik Video Ekibi () tarafından geliştirilen en son blok-yönelimli hareket-kompanzasyonuna dayalı çözücü standardıdır. ITU-T H.264 ve ISO/IEC MPEG-4 Bölüm 10 standartları (resmi adı, ISO/IEC 14496-10) birlikte sürdürülmektedir, dolayısıyla aynı teknik içeriğe sahiptirler. Standartın ilk nihai taslak metni Mayıs 2003'te tamamlanmıştır. == Genel == H.264/AVC projesinin amacı diğer mevcut standartlara göre oldukça düşük bit oranlarında (Örnek: MPEG-2, H.263 ya da MPEG-4 Bölüm 2'ye göre yarı yarıya bit oranı) ve gerçekleştirilmesi aşırı pahalı olacak karmaşık tasarımlar gerektirmeden iyi görüntü kalitesi sağlayacak bir standart yaratmaktı. Bir diğer hedef de yeterli esneklik sağlayarak standardın televizyon yayınları, DVD depolama, RTP/IP paket ağları ve ITU-T çoklu ortam telefon sistemleri gibi, düşük ya da yüksek bit oranları, düşük ya da yüksek çözünürlükte görüntü ihtiva eden geniş bir ağlar ve sistemler yelpazesinde çalışabilmesi ve geniş bir uygulama çeşitliliğine sahip olmasıydı. H.264 aslında, bölümleri aşağıda listelenen profiller olan bir standartlar ailesidir. Herhangi bir çözücü bu profillerden en az birini çözer, ancak her birini çözmek zorunda değildir. Çözücü teknik özelliklerinde hangi profillerin çözülebildiği tanımlanır. H.264/AVC'nin ilk sürümünün standardizasyonu Mayıs 2003'te tamamlanmıştır. Sonrasında JVT tarafından, Fidelity Range Extensions (FRExt) olarak bilinen eklentiler yayınlanmıştır. Bu eklentiler yükseltilmiş örnekleme bit derinliğini ve YUV 4:2:2 ve YUV 4:4:4 örnekleme yapılarını da içeren daha yüksek çözünürlüklü renk bilgisini destekleyerek daha yüksek kalitede görüntü kodlamayı imkânlı hale getirmiştir. Fidelity Range Extensions projesi ile ayrıca 4x4 ve 8x8 tam sayı çevrimleri arasında uyumlu anahtarlama, kodlayıcıya özgü algısal kuantizasyon ağırlık matrisleri, resimler-arası etkin kayıpsız kodlama ve ilave renk uzayları desteği gibi özellikler de eklenmiştir. Fidelity Range Extensions tasarım çalışmaları Temmuz 2004'te tamamlandı ve Eylül 2004'te de yayımlandı. Daha yeni eklentiler arasında ağırlıklı olarak profesyonel uygulamalara yönelik beş yeni profil eklenmesi, ileri gam renk uzayı desteği, ilave görüntü oranı göstergeleri, iki farklı tipte "tamamlayıcı genişletilmiş bilgi" tanımlanması (post-filter hint ve tone mapping) ve endüstriden gelen geri beslemeye göre farklı olarak tasarlanması gerektiği görülen bir FRExt profilinin içeriğinin daraltılması sayılabilir. H.264/AVC Ek G'de belirlendiği şekliyle "Ölçeklendirilebilir görüntü kodlaması"(), alt-bit akıntıları() ihtiva eden H.264/AVC'ye uygun bit akıntıları() kurulmasına olanak verir. Geçici bit akıntısı ölçeklendirmesi (orijinal bit akıntısından daha küçük geçici örnekleme oranına sahip bir alt-bit akıntısı olması durumu) için alt-bit akıntısı türetilirken orijinal bit akıntısından bütün erişim üniteleri çıkartılır. Uzamsal ve kaliteli bit akıntısı ölçeklendirmesi için alt-bit akıntısı türetilirken orijinal bit akıntısından NAL (Network Abstraction Layer) çıkartılır. Bu durumda etkili kodlama için "katmanlar arası kestirme" yani düşük uzamsal çözünürlük ya da kalitedeki sinyal verileri kullanılarak daha yüksek uzamsal çözünürlük ya da kalitedeki sinyalin oluşturulması yöntemi kullanılır. "Ölçeklendirilebilir görüntü kodlaması" eklentisi Kasım 2007'de tamamlanmıştır. ITU-T adlandırma sistemine göre H.264, standardın H.26x serisi Video Coding Experts Group (VCEG) görüntü kodlama standartlarının bir parçası olduğunu ifade eder; MPEG-4 AVC adı ise ISO/IEC ve MPEG isimlendirme sistemlerine göre standardın MPEG-4 standartlar dizisi olarak da bilinen ISO/IEC 14496'nın 10uncu bölümü (Advanced Video Coding) olduğunu ifade eder. Standart ITU-T içinde yürütülen H.26L adlı bir VCEG geliştirme projesinin devamı olarak VCEG ve MPEG'in ortak çalışması ile geliştirilmiştir. Bu sebeple ortak mirası yansıtan H.264/AVC, AVC/H.264, H.264/MPEG-4 AVC ya da MPEG-4/H.264 AVC adlarıyla atıfta bulunulması yaygındır. ITU-T tarihçesini yansıtan H.26L adı daha az yaygın olmakla birlikte hala kullanılmaktadır. Zaman zaman standardı geliştiren "Birleşik Video Ekibi(JVT)" ne atfen "JVT çözücüsü" de denildiği görülür. (Bu çeşit ortak geliştirme çalışmaları oldukça yaygındır. Örneğin MPEG-2 video çözücüsü standardı da MPEG ve ITU-T arasındaki ortak çalışma ile oluşturulmuştur ve ITU-T camiası içinde H.262 olarak bilinir.) == Özellikler == H.264/AVC/MPEG-4 Bölüm 10 görüntüyü mevcut standartlardan çok daha etkin bir biçimde sıkıştırmaya yarayan ve çok farklı ağ ortamlarında uygulama esnekliğine olanak sağlayan bir dizi yeni özellik içerir. Bazı temel özellikleri şunlardır: * Aşağıdaki özelliklere sahip çoklu resim, resimler-arası kestirme: ** Önceden kodlanmış resimleri, bazı durumlarda 16 referans çerçeve (örgülü kodlamada () 32 referans alanı) kullanılmasına olanak vererek mevcut standartlardan çok daha esnek bir biçimde referans alabilme. Mevcut standartlarda bu tipik olarak bir ya da geleneksel "B-görüntüsü" nde () olduğu gibi en fazla ikidir. Bu özellik genellikle pek çok görüntüde bit oranı ve kalite olarak pek de fazla olmayan bir miktar iyileşme sağlar. Fakat özellikle, tekrarlanan hareket içeren, ileri ve geri hareketli ya da çıplak arka planlı sahnelerde bir yandan netliği koruyarak diğer yandan bit oranını ciddi olarak düşürebilir. ** 16×16ya kadar büyüklükte ya da 4x4e kadar küçüklükte olabilen bloklarla yapılan "Değişken blok büyüklüğüne sahip hareket kompanzasyonu"() hareketli bölgelerin hassas olarak bölümlenmesini sağlar. 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, ve 4×4 boyutundaki parlaklık kestirme bloklarını destekler ve bunların pek çoğu tek bir makroblok içinde birlikte kullanılabilir. Renk kestirme blokları ise kullanılan renk alt-örneklemesine bağlı olarak göreceli olarak daha küçüktür. ** 16 adet 4x4 kısımdan oluşan bir B makrobloğundaki gibi an fazla 32 adet olacak şekilde her makroblok için birden fazla hareket vektörü kullanabilme (kısım başına bir ya da iki). Her bir 8x8 ya da daha büyük kısım alanındaki hareket vektörleri farklı referans resimlere işaret edebilir. ** B-çerçevesi içinde I-makrobloğu da dahil her makroblok tipini kullanabilme kabiliyeti. B-çerçevesi kullanılırken çok daha etkili kodlama sağlar. Bu özellik dikkat çekici biçimde MPEG-4 ASP ye dahil edilmemiştir. ** Daha keskin altpiksel hareket kompanzasyonu için yarım-piksel parlaklık örnek kestirmelerinin türetilmesinde 6-tap filtreleme kullanılması. İşlemci kapasitesinden tasarruf için çeyrek- piksel hareket yarım-piksel değerlerinin doğrusal interpolasyonu ile türetilir. ** Hareket kompanzasyonu için hareketli alanların hassas tanımlanmasına olanak veren çeyrek-piksel hassasiyeti kullanımı. Renk için çözünürlük tipik olarak yatayda ve düşeyde yarıya indirilir, bu nedenle renkteki hareket kompanzasyonunda sekizdebirlik renk pikseli grid ünitesi kullanılır. ** Bir kodlayıcının hareket kompanzasyonu yaparken bir ölçekleme ve ofset tanımlayabilmesini sağlayan ve bu sayede kararma, aydınlanma ve resim geçişleri gibi özel durumlarda kayda değer bir performans artışı sağlayan ağırlıklı kestirme yöntemi kullanımı. Bu yöntem B-çerçeveleri için dahili ve P-çerçeveleri için harici ağırlıklı kestirmeyi kullanır. * MPEG-2 Bölüm 2'deki "sadece-DC" kestirmesi ve H.263v2 ile MPEG-4 Bölüm 2'deki dönüşüm katsayısı kestirmesinden farklı olarak çerçeve içi kodlamada komşu blokların kenarlarından yararlanılarak uzamsal kestirme kullanılır. Bu parlaklık kestirmesinde 16×16, 8×8, ve 4×4 blok boyutlarını kapsar (her makroblok içinde sadece bir tip kullanılabilir). * Kayıpsız makroblok kodlaması: ** İçinde görüntü verisi örneklerinin doğrudan gösterildiği, özel bölgelerin kusursuz gösterilmesine ve her makroblok verisi için kodlanmış veri miktarına kesin bir sınır konulabilmesine olanak veren kayıpsız bir "Pulse Code Modulation (PCM)" makroblok gösterim modu. ** PCM'e göre daha az bit kullanarak özel bölgelerin kusursuz gösterimine olanak veren bir geliştirilmiş kayıpsız makroblok gösterim modu. * Esnek örgülü-tarama görüntü kodlama özellikleri: ** Alan modunda 16x16 makrobloklara izin veren, çerçeve olarak kodlanmış resimler için bir makroblok çifti yapısı kullanan "makroblok uyumlu çerçeve-alan kodlaması"(). MPEG-2 16x8 yarı-makrobloklar kullanmaktadır. ** Serbest olarak seçilmiş, MBAFF çerçeveler olarak kodlanmış resimlerle her biri örgülü kodlanmış görüntünün tekli alanları(yarım çerçeve) olarak kodlanmış resimlerden oluşan bir karışımı için "resim uyumlu çerçeve-alan kodlaması"() * Yeni çevrimsel tasarım özellikleri: ** Önceki çözüçülerde sıkça görülen parazit salınımları() en aza indirerek kalıtsal() sinyallerin hassas olarak yerleştirilmesini sağlayan kesin eşlemeli tam sayı 4x4 uzamsal blok dönüşümü. Kavram olarak bilinen "discrete cosine transform (DCT)" tasarımına benzemekle birlikte basitleştirilmiş ve tam olarak belirtilen kodlamayı verecek şekilde iyileştirilmiştir. ** Birbiriyle yüksek oranda bağıntılı bölgeleri 4x4 dönüşüme göre daha verimli sıkıştırmayı sağlayan kesin eşlemeli tam sayı 8x8 uzamsal blok dönüşümü. Kavram olarak bilinen "discrete cosine transform (DCT)" tasarımına benzemekle birlikte basitleştirilmiş ve tam olarak belirtilen kodlamayı verecek şekilde iyileştirilmiştir. ** Tam sayı dönüşüm işlemi için 4×4 ve 8×8 dönüşüm blok boyutları arasında uyumlu kodlayıcı seçimi olanağı. ** DC renk (ve bir özel durumda parlaklık) katsayılarına uygulanan birinci uzamsal dönüşümün "DC" katsayıları üzerinde gerçekleştirilen ikinci bir Hamard dönüşümü. Yumuşak bölgelerde daha da fazla sıkıştırma sağlar. * Kuantizasyon tasarımı: ** Logaritmik basamak boyutu kontrolü ve ters kuantizasyon skalası. Kodlayıcılara daha kolay bit oranı yönetimi olanağı sağlar. ** Algısal kuantizasyon optimizasyonu için kodlayıcı tarafından seçilen frekansa özel kuantizasyon skala matrisleri. * Diğer "discrete cosine transform (DCT)" tabanlı görüntü sıkıştırma tekniklerinde sıkça görülen kalıntıları gidermek ve sonuç olarak daha iyi görsellik ve sıkıştırma verimi sağlayan "döngü-içi bloklama filtresi". * Entropi kodlaması tasarımı: ** "bağlam uyarlamalı ikili aritmetik kodlaması"(). Verilen bağlamdaki olasılıklarını bilerek görüntü akıntısı içindeki sözdizim() elemanlarını kayıpsız olarak kodlamak için bir algoritma. CABAC ile veri CAVLC'ye göre daha verimli olarak kodlanabilir ancak çözücü tarafında daha açmak için daha fazla işlem gerektirir. ** "Bağlam uyarlamalı değişken uzunluklu kodlama"(). Kuantize edilmiş dönüşüm katsayısı değerlerinin kodlanması için CABAC'a göre daha az komplike bir alternatiftir. Daha az komplike olmasına rağmen daha fazla özenilmiş ve katsayıları kodlamada önceki tasarımlardaki metotlardan daha verimli bir algoritmadır. ** "Exponential-Golomb" (ya da Exp-Golomb) kodlaması. CABAC ya da CAVLC tarafından kodlanmayan pek çok sözdizim elemanı için ortak, basit ve iyi yapılandırılmış bir "değişken uzunluklu kodlama"(). * Kayıp elastikiyeti özellikleri: ** "Ağ soyutlama katmanı"() tanımlaması. Aynı görüntü sözdiziminin farklı ağ ortamlarında kullanılmasını sağlar. H.264'ün çok temel bir tasarım özelliği, MPEG-4'teki "Header Extension Code (HEC)" da olduğu gibi, başlığın iki kez tekrarlanmasını ortadan kaldıran müstakil paketler oluşturulmasıdır.RFC 3984, p.3 Bu, ortam akıntısındaki birden fazla dilimle ilgili olan bilgi çözülerek sağlanır. Yüksek seviye parametrelerin kombinasyonuna "parametre kümesi" denilir. H.264'te iki tip parametre kümesi vardır:"Dizi Parametre Kümesi"() ve "Resim Parametre Kümesi"(). Aktif bir "Dizi Parametre Kümesi" kodlanmış bir görüntü dizisi boyunca değişmeden kalırken aktif bir "Resim Parametre Kümesi" de kodlanmış bir resmin içinde değişmeden kalır. Dizi ve resim parametre kümesi yapıları resim boyutu, uygulanan kodlama modu ve makroblok-dilim eşleme haritası gibi bilgiler içerir. ** Dilim grupları olarak da bilinen "Esnek makroblok düzenlemesi"() ve "isteğe bağlı dilim düzenlemesi" (). Resimlerdeki temel bölgelerin(makrobloklar) gösterim sıralamasını yeniden yapılandırmaya yarayan tekniklerdir. Genellikle hata/kayıp dayanıklılığı özelliği olarak değerlendirilirlerse de FMO ve ASO farklı maksatlarla da kullanılabilir. ** "Veri bölümlendirme"(). Farklı oranlarda hata/kayıp koruması uygulanabilmesi için önemli ve daha az önemli olan sözdizim elemanlarının farklı paketlere ayrılması. ** "Tekrarlanan dilimler"(). Kodlayıcıya bir resim bölgesinin (genellikle daha düşük doğrulukta)ikinci bir gösterimini gönderme olanağı vererek hata/kayıp dayanıklılığını artıran bir özelliktir. ** "Çerçeve numaralama"(). Diğer resimlerin arasına ilave resimler ekleyerek ve ağ paket kayıpları ve kanal hatalarından kaynaklanan kayıpları tespit edip bunları gizleyerek geçici ölçeklendirmeyi etkinleştirip "alt-diziler" oluşturmaya yarayan bir özellik. * SP ve SI dilimleri olarak adlandırılan "anahtarlama dilimleri". Bir kodlayıcının bir çözücüyü görüntü akışı bit oranı anahtarlaması ya da özel çalışma modları gibi amaçlarla sürmekte olan bir görüntü akıntısına atlamaya yönlendirmesini sağlar. Bir çözücü SP/SI özelliğini kullanarak bir görüntü akıntısının ortasına atladığı zaman anahtarlamadan önce referansa olarak farklı resimleri kullanmasına ya da hiç referans resim olmamasına bu bölgedeki kodlanmış resimlerin tam eşleniğine sahip olabilir. * Kodlanmış verinin içinde bulunan ve bit akıntısına rastgele erişim saylayan, aynı zamanda bayt senkronizasyonunu kaybedebilen sistemlerde bayt konumlandırılmasını kurtarmaya yarayan "başlangıç kodu"() olarak bilinen özel bit dizilerinin yanlışlıkla çalıştırılmasını önleyen basit bir otomatik işlev mevcuttur. * "Tamamlayıcı arttırılmış bilgi"() ve "görüntü kullanım bilgisi"(). Görüntüyü farklı amaçlarla kullanmaya olanak veren ve bit akıntısının içine yerleştirilebilen ilave bilgilerdir. * Alfa kompozitleme gibi amaçlarla kullanılabilecek yedek resimler. * Seçilmiş profile bağlı olarak 4:2:0, 4:2:2 ve 4:4:4 monokrom renk alt-örneklemesi desteği. * Seçilmiş profile bağlı olarak örnek başına 8'den 14'e kadar örnekleme bit derinlik hassasiyeti desteği. * Renk düzlemlerini kendi dilim yapıları, makroblok modları, hareket vektörleri, vs. olan ayrık resimler olarak tek tek kodlayabilme özelliği. Kodlayıcıların basit bir paralellik yapısında tasarlanabilmesini sağlar. Sadece 4:4:4-kabiliyeti olan profillerce desteklenir. * "Resim sıralaması sayacı". Resim sıralamasının ve çözülmüş resimlerin örnekleme değerleri sıralamasının zamanlama bilgisinden izole olarak tutulmasını sağlar. Zamanlama bilgisinin çözülmüş resmin içeriği bozulmayacak şekilde ayrı bir sistem tarafından taşınmasını ve kontrol edilip değiştirilebilmesini sağlar. Bu özellikler ve ilave daha başka özellikler H.264'ün geniş bir koşullar ve uygulama ortamları çeşitliliği altında önceki herhangi bir standarttan çok daha iyi randıman vermesine yardımcı olur. Özellikle yüksek bit oranlı ve yüksek çözünürlüklü durumlarda H.264 yarı yarıya bit oranıyla sıklıkla MPEG-2'ye eşit performans sağlar. Diğer ISO/IEC MPEG görüntü standartlarında olduğu gibi H.264/AVC'de de ücretsiz indirilebilen bir referans yazılım örneği mevcuttur. Ana amacı kendi başına kullanışlı bir yazılım olmaktan ziyade H.264/AVC özelliklerinin örneklerini vermektir. MPEG tarafından birtakım referans donanım geliştirilmesi çalışmaları da sürdürülmektedir. Yukarıda belirtilen özellikler H.264'ün tüm profillerini kapsayan komple özellikleridir. Bir çözücü için 'profil' amaçlanan uygulamalardaki gereksinimleri karşılaması için gerekli bir özellikler kümesidir. Bu da her profilde listelenen özelliklerin tümünün desteklenmediği anlamına gelir. Bir sonraki bölümde H.264/AVC'nin çeşitli profilleri anlatılmıştır. == Profiller == H.264/MPEG-4 AVC standardı, profiller olarak adlandırılan, belirli uygulama sınıflarına hitap eden aşağıdaki kabiliyetler kümelerini içerir: * Yapay Temel Profil(): (Standartın onaylanmış bir bölümü olma sürecindedir) Öncelikli olarak düşük maliyetli uygulamalarda görüntülü konferans ve mobil uygulamalar için kullanılır. Aşağıda anlatılan Temel, Ana ve Yüksek profillerin ortak özelliklerine karşılık gelir. * Temel Profil(): Öncelikli olarak düşük maliyetli ve sınırlı işlem kaynağına sahip olan uygulamalarda görüntülü konferans ve mobil uygulamalar için kullanılır. * Ana Profil(): Yayıncılık ve depolama uygulamalarında esas olarak kullanılmak için tasarlanan bu profil, bu uygulamalara yönelik Yüksek Profil geliştirildiğinde önemini yitirmiştir. * Genişletilmiş Profil(): Akan görüntü profili olarak amaçlanan bu profil göreceli olarak daha yüksek sıkıştırma kabiliyetine sahiptir ve daha az veri kaybı ile daha iyi sunucu akışı anahtarlaması için bazı teknikler içerir. * Yüksek Profil(): Yayıncılık ve disk depolama uygulamaları için öncelikli profil. Özellikle yüksek-tanımlı televizyon HDTV uygulamalarına yöneliktir. (HD DVD ve Blu-ray teknolojilerine uyarlanmıştır). * Yüksek 10 Profili(): Bugünün ana kullanıcı ürünü yelpazesinin ötesinde olacak şekilde bu profil Yüksek Profil üzerine örnek başına 10 bite kadar resim çözünürlüğü desteği eklenerek oluşturulmuştur. * Yüksek 4:2:2 Profili(): Öncelikli olarak örgülü görüntü kodlaması kullanan profesyonel uygulamalara yönelik olan bu profil Yüksek 10 Profili üzerine örnek başına 10 bite kadar resim çözünürlüğü kullanırken 4:2:2 renk alt-örneklemesi desteği de eklenerek oluşturulmuştur. * Yüksek 4:4:4 Kestirmeli Profil(): Bu profil 4:4:4 renk örneklemesini destekleyecek, örnek başına 14 bit olacak ve ayrıca etkin kayıpsız bölge desteği ve her resmin 3 ayrı renk düzleminde kodlanmasını sağlayacak şekilde Yüksek 4:2:2 Profili üzerine kurulmuştur. İlave olarak standart, diğer profillerin basit alt kümelerinden oluşan 4 adet "iç-profil" içerir. Bunlar çoğunlukla kamera ve redaksiyon gibi profesyonel uygulamalar için kullanılır: * Yüksek 10 İç Profil(): Yüksek 10 Profilinin iç uygulamalara uyarlanmış hali. * Yüksek 4:2:2 İç Profil(): Yüksek 4:2:2 Profilinin iç uygulamalara uyarlanmış hali. * Yüksek 4:4:4 İç Profil(): Yüksek 4:4:4 Profilinin iç uygulamalara uyarlanmış hali. * CAVLC 4:4:4 İç Profil(): Yüksek 4:4:4 Profilinin iç uygulamalara ve CAVLC entropi kodlamasına uyarlanmış hali (CABAC'ı desteklemez). Ölçeklendirilebilir Görüntü Kodlaması uzantısının bir sonucu olarak standart 3 adet ilave ölçeklendirilebilir profil içerir: * Ölçeklendirilebilir Temel Profil(): Öncelikli olarak görüntülü konferans, mobil ve izleme uygulamalarını hedefleyen bu profil H.264/AVC Temel Profili üzerine kuruludur. İlave olarak birtakım ölçeklendirme gereçleri kullanıma sunulmuştur. * Ölçeklendirilebilir Yüksek Profil(): Temel katmanı H.264/AVC Yüksek Profile uygun olmak zorunda olan bu profil öncelikli olarak yayıncılık ve akan görüntü uygulamalarını hedefler. * Ölçeklendirilebilir Yüksek İç Profil(): Yüksek Profilin iç uygulamalara uyarlanmış hali olan bu profil öncelikli olarak yapımcılık uygulamalarını hedefler. Yapay Temel Temel Genişletilmiş Ana Yüksek Yüksek 10 Yüksek 4:2:2 Yüksek 4:4:4 Kestirmeli I ve P Dilimleri B Dilimleri SI ve SP Dilimleri Çoklu Referans Çerçeveleri Döngü İçi Bloklama Filtresi CAVLC Entropi Kodlaması CABAC Entropi Kodlaması Esnek Makroblok Sıralaması (FMO) İsteğe Bağlı Dilim Sıralaması (ASO) Tekrarlanan Dilimler (RS) Veri Bölümlemesi Örgülü Kodlama (PicAFF, MBAFF) 4:2:0 Renk Formatı Monokrom Görüntü Formatı (4:0:0) 4:2:2 Renk Formatı 4:4:4 Renk Formatı 8 Bit Örnekleme Derinliği 9 ve 10 Bit Örnekleme Derinliği 11 - 14 Bit Örnekleme Derinliği 8x8'e karşı 4x4 Dönüşüm Uyarlaması Kuantizasyon Ölçeklendirme Matrisleri Ayrı ayrı Cb ve Cr QP kontrolü Ayrı ayrı Renk Düzlemi Kodlaması Kestirmeli Kayıpsız Kodlama Yapay Temel Temel Genişletilmiş Ana Yüksek Yüksek 10 Yüksek 4:2:2 Yüksek 4:4:4 Kestirmeli == Seviyeler == Seviye No Max makroblok / saniye Max çerçeve boyutu (makroblok) Max görüntü bit oranı (VCL) (Temel, Genişletilmiş ve Ana Profil Max görüntü bit oranı (VCL) (Yüksek Profil) Max görüntü bit oranı (VCL) (Yüksek 10 Profili) Max görüntü bit oranı (VCL) (Yüksek 4:2:2 ve Yüksek 4:4:4 Kestirmeli Profiller) Seviye içindeki çerçeve oranında yüksek çözünürlük örnekleri 1 1485 99 64 kbit/s 80 kbit/s 192 kbit/s 256 kbit/s 128x96@30.9 (8) 176x144@15.0 (4) 1b 1485 99 128 kbit/s 160 kbit/s 384 kbit/s 512 kbit/s 128x96@30.9 (8) 176x144@15.0 (4) 1.1 3000 396 192 kbit/s 240 kbit/s 576 kbit/s 768 kbit/s 176x144@30.3 (9) 320x240@10.0 (3) 352x288@7.5 (2) 1.2 6000 396 384 kbit/s 480 kbit/s 1152 kbit/s 1536 kbit/s 320x240@20.0 (7) 352x288@15.2 (6) 1.3 11880 396 768 kbit/s 960 kbit/s 2304 kbit/s 3072 kbit/s 320x240@36.0 (7) 352x288@30.0 (6) 2 11880 396 2 Mbit/s 2.5 Mbit/s 6 Mbit/s 8 Mbit/s 320x240@36.0 (7) 352x288@30.0 (6) 2.1 19800 792 4 Mbit/s 5 Mbit/s 12 Mbit/s 16 Mbit/s 352x480@30.0 (7) 352x576@25.0 (6) 2.2 20250 1620 4 Mbit/s 5 Mbit/s 12 Mbit/s 16 Mbit/s 352x480@30.7(10) 352x576@25.6 (7) 720x480@15.0 (6) 720x576@12.5 (5) 3 40500 1620 10 Mbit/s 12.5 Mbit/s 30 Mbit/s 40 Mbit/s 352x480@61.4 (12) 352x576@51.1 (10) 720x480@30.0 (6) 720x576@25.0 (5) 3.1 108000 3600 14 Mbit/s 14 Mbit/s 42 Mbit/s 56 Mbit/s 720x480@80.0 (13) 720x576@66.7 (11) 1280x720@30.0 (5) 3.2 216000 5120 20 Mbit/s 25 Mbit/s 60 Mbit/s 80 Mbit/s 1280x720@60.0 (5) 1280x1024@42.2 (4) 4 245760 8192 20 Mbit/s 25 Mbit/s 60 Mbit/s 80 Mbit/s 1280x720@68.3 (9) 1920x1080@30.1 (4) 2048x1024@30.0 (4) 4.1 245760 8192 50 Mbit/s 62.5 Mbit/s 150 Mbit/s 200 Mbit/s 1280x720@68.3 (9) 1920x1080@30.1 (4) 2048x1024@30.0 (4) 4.2 522240 8704 50 Mbit/s 62.5 Mbit/s 150 Mbit/s 200 Mbit/s 1920x1080@64.0 (4) 2048x1080@60.0 (4) 5 589824 22080 135 Mbit/s 168.75 Mbit/s 405 Mbit/s 540 Mbit/s 1920x1080@72.3 (13) 2048x1024@72.0 (13) 2048x1080@67.8 (12) 2560x1920@30.7 (5) 3680x1536@26.7 (5) 5.1 983040 36864 240 Mbit/s 300 Mbit/s 720 Mbit/s 960 Mbit/s 1920x1080@120.5 (16) 4096x2048@30.0 (5) 4096x2304@26.7 (5) Seviye No Max makroblok / saniye Max çerçeve boyutu (makroblok) Max görüntü bit oranı (VCL) (Temel, Genişletilmiş ve Ana Profil Max görüntü bit oranı (VCL) (Yüksek Profil) Max görüntü bit oranı (VCL) (Yüksek 10 Profili) Max görüntü bit oranı (VCL) (Yüksek 4:2:2 ve Yüksek 4:4:4 Kestirmeli Profiller) Seviye içindeki çerçeve oranında yüksek çözünürlük örnekleri == Standardizasyon kurulu ve tarihçe == 1998 yılı başlarında "Video Coding Experts Group" (VCEG - ITU-T SG16 Q.6) "H.26L" adında bir proje üzerine taslak gönderilmesi için bir çağrı yayınladı. Projenin amacı mevcut diğer görüntü kodlama standartlarıyla karşılaştırıldığında iki katı yüksek verim elde edilebilecek ve geniş bir uygulama alanı olan yeni bir kodlama standardı oluşturmaktı. VCEG'in başkanlığını Microsoft'tan Gary Sullivan yapmaktaydı. İlk taslak Ağustos 1999'da oluşturuldu. 2000 yılında "Heinrich Hertz Institute, Almanya"'dan Thomas Wiegand VCEG eşbaşkanı oldu. Aralık 2001'de VCEG ve MPEG bir araya gelip kuruluş amacı standardı son haline getirmek olan "Birleşik Video Ekibi (JVT)"'yi oluşturdular. JVT'ye Gary Sullivan, Thomas Wiegand ve Motorola'dan Ajay Luthra başkanlık etmekteydi. Haziran 2004'te "Fidelity range extensions (FRExt)" projesi sonlandırıldı. Ocak 2005'ten Kasım 2007'ye kadar H.264/AVC'nin "Ölçeklendirilebilir Görüntü Kodlaması (SVC)" eklentisi üzerinde çalışıldı. Daha sonra Almanya Aachen Üniversitesinden Jens-Reiner Ohm yönetim ekibine katıldı. Temmuz 2006'dan beri JVT üçboyutlu ya da çok bakışaçılı televizyona yönelik "Çokbakışlı Görüntü Kodlama"() üzerinde çalışmaktadır. == Sürümler == H.264/AVC sürümleri aşağıdaki tamamlanmış revizyonlar, düzeltmeler ve eklentilerden oluşur (tarihler ITU-T içindeki son onay tarihleridir, bunun yanında ISO/IEC "Uluslararası Standart" olarak onaylanma tarihleri genellikle bunlardan kısa bir süre sonradır). Her sürüm bir önceki sürümden farklılıkları metin olarak içerir. Koyu renkle yazılmış sürümler yayımlanmış ya da yayımlanması planlanmıştır. * 1. Sürüm (Mayıs 2003) Temel, Genişletilmiş ve Ana profilleri içeren ilk onaylanmış sürüm. * 2. Sürüm (Mayıs 2004) çeşitli küçük değişikliklerden oluşan düzeltme sürümü. * 3. Sürüm (Mart 2005) Yüksek, Yüksek 10, Yüksek 4:2:2 ve Yüksek 4:4:4 profillerini içeren Fidelity Range Extensions (FRExt) ana uzantısı eklenmiştir. * 4. Sürüm (Eylül 2005) çeşitli küçük değişiklikler ve 3 adet görüntü oranı göstergesi eklentisi içeren düzeltme sürümü. * 5. Sürüm (Haziran 2006) Önceden eklenmiş Yüksek 4:4:4 profilinin çıkarılmasına dair eklenti. * 6. Sürüm (Haziran 2006) genişletilmiş-gam renk uzayı desteği gibi küçük değişiklikler içeren eklenti. * 7. Sürüm (Nisan 2007) Yüksek 4:4:4 Kestirmeli ve 4 adet İç profil (Yüksek 10 İç, Yüksek 4:2:2 İç, Yüksek 4:4:4 İç ve CAVLC 4:4:4 İç) içeren eklenti. * 8. Sürüm (Kasım 2007) Ölçeklendirilebilir Temel, Ölçeklendirilebilir Yüksek ve Ölçeklendirilebilir Yüksek İç profillerinin tanımlandığı "Ölçeklendirilebilir Görüntü Kodlaması (SVC)"'nı içeren eklenti. * 9. Sürüm (Ocak 2009) Küçük değişklikler içeren düzeltme sürümü. Planlanan eklentiler: * "Çokbakışlı Görüntü Kodlama"()'yi içeren eklenti -ilk taslak Ekim 2008'de, ikinci taslak Şubat 2009'da onaylandı. == Patent ruhsatlandırması == Yazılım algoritmaları ile ilgili patentlerin tanındığı ülkelerde H.264/AVC standardını kullanarak ürün geliştiren üreticiler kullandıkları patentli teknolojiler için lisans ücreti ödemek zorundadırlar. Bu durum aynı zamanda Temel Profil için de geçerlidir. MPEG standardizasyon kuruluşuyla herhangi bir bağlantısı olmayan özerk bir kuruluş olan "MPEG LA" bu standart içinde uygulanan patentlerin ve aynı zamanda MPEG-2 Bölüm 1 Systems, MPEG-2 Bölüm 2 Video, MPEG-4 Bölüm 2 Video ve diğer teknolojilerin içindeki patent havuzunu yönetmektedir. 2005 yılında US Patent 5,452,104 ve 5,576,767 nolu patentlerin hak sahibi Qualcomm firması, H.264 görüntü sıkıştırma standardına uygun ürünler piyasaya sürerek patent haklarını ihlal ettiği gerekçesiyle Broadcom firması aleyhine Amerikan bölge mahkemesinde dava açmıştır.See Qualcomm Inc. v. Broadcom Corp. , No. 2007-1545, 2008-1162 (Fed. Cir. Dec. 1, 2008). For articles in the popular press, see signonsandiego.com, "Qualcomm loses its patent-rights case" and "Qualcomm's patent case goes to jury" ; and bloomberg.com "Broadcom Wins First Trial in Qualcomm Patent Dispute". 2007 yılında Bölge Mahkemesi Qualcomm'un Mayıs 2003'te H.264 standardının yayınlanmasından önce JVT'ye teslim etmediği için bu patentlerin bağlayıcı olmadığına karar verdi. Aralık 2008'de Amerikan Temyiz Mahkemesi Bölge Mahkemesinin kararını onaylamakla beraber Bölge Mahkemesine bağlayıcı olmamanın kapsamını limitlemesi için bir yazı gönderdi. === Patentler ve GNU Ücretsiz Yazılım ruhsatları === H.264 gibi çözücülerin ücretsiz yazılım uygulamalarının yasallığı üzerine, özellikle H.264 ve diğer patentli çözücü uygulamalarının geliştirilmesinde GNU LGPL ve GPL kullanımı konusunda sık sık tartışmalar olmaktadır. Tartışmalar sonunda varılan uzlaşma kullanım haklarının yerel yasalara göre belirlenmesidir. Eğer ürünler H.264'ün kapsadığı patentlerin hiiçbirinin uygulanmadığı ülke ya da ülkelere ihraç edilecekse LPGL kullanılarak geliştirilen bir çözücü herhangi bir sorun yaratmaz: Yazılım lisansı ile (eksik) patent lisansı arasında bir anlaşmazlık yoktur. Aksine LGPL kullanılarak geliştirilmiş bir H.264 kodlayıcı/çözücüyü ABD içinde piyasaya sürmek çözücü uygulaması yazılım lisansı ihlali anlamına gelir. Basitçe söylenirse LGPL ve GPL lisansları kodun dağıtımıyla bağlantılı tüm hakların kodu alana da uygulanmasını gerektirir, kullanım ya da dağıtım ile ilgili daha öte sınırlamalar yoktur. Eğer bir patent lisansı için aranma gereksinimi varsa bu GPL ve LGPL koşullarının açık bir ihlalidir. Bu nedenle patent ipotekli bir kodu bu lisanslar altında satmak GPL ve LPGL koşullarına göre geçersiz kılınmaktadır. == Uygulamalar == H.264 görüntü çözücünün düşük bit oranlı akan internet uygulamalarından HDTV ve kayıpsız kodlamalı Sayısal Sinema uygulamalarına kadar her türlü sıkıştırılmış sayısal görüntü çeşitlerini içeren geniş bir uygulama alanı vardır. H.264 kullanılarak %50'ye kadar bit oranı tasarrufu sağlanabilmektedir. Örneğin, aynı Sayısal Uydu TV kalitesi MPEG 2'nin 3.5 Mbit/s oranıyla kıyaslandığında 1.5 Mbit/s ile sağlanabilmektedir. Uyumluluk ve H.264/AVC'nin problemsiz uygulanmasını garantilemek için pek çok standart kuruluşu kendi görüntü standartlarına bu standartları kullananların H.264/AVC'yi uygulayabilmesi için eklentiler yapmışlardır. Blu-ray disk formatı ve şimdilerde piyasadan kalkan HD DVD formatı H.264/AVC Yüksek Profil'ini 3 zorunlu görüntü sıkıştırma çözücüsünden biri olarak içermektedirler. Sony de bu formatı Taşınabilir Hafıza Kartlarının Görüntü formatı olarak benimsemiştir. 2004 yılı sonlarında Sayısal Görüntü Yayını projesi (DVB) televizyon yayınlarında H.264/AVC'nin kullanımını onaylamıştır. ABD'deki "İleri Televizyon Sistemleri Komitesi (ATSC)" standart kuruluşu Amerikan televizyon yayınlarında kullanılan opsiyonel Enhanced-VSB transmisyon modu için bir veya ik adet ileri görüntü çözücüsü tanımlama olasılığını değerlendirmektedir. H.264/AVC ve VC-1'i CS/TSG-659r2 ve CS/TSG-658r1 olarak aday standartlar içine dahil etmiştir. AVCHD Sony ve Panasonic tarafından tasarlanan ve H.264 kullanan bir yüksek-tanımlı kayıt formatıdır. AVC-Intra ise Panasonic tarafından geliştirilen sadece çerçevelerarası bir sıkıştırma formatıdır. == Yazılım kodlayıcı özellikleri karşılaştırması == QuickTime Nero Digital LEAD x264 Mainconcept dicas Elecard Telestream VSofts ProCoder3 Avivo RapiHD Intel IPP I ve P Dilimleri B Dilimleri SI ve SP Dilimleri Çoklu Referans Çerçeveleri Döngü İçi Bloklama Filtresi CAVLC Entropi Kodlaması CABAC Entropi Kodlaması Esnek Makroblok Sıralaması (FMO) İsteğe Bağlı Dilim Sıralaması (ASO) Tekrarlanan Dilimler (RS) Veri Bölümlemesi Örgülü Kodlama (PicAFF, MBAFF) (MBAFF) (MBAFF) (MBAFF) (MBAFF) (MBAFF) 4:2:0 Renk Formatı Monokrom Görüntü Formatı (4:0:0) 4:2:2 Renk Formatı 4:4:4 Renk Formatı 8 Bit Örnekleme Derinliği 9 ve 10 Bit Örnekleme Derinliği 11 - 14 Bit Örnekleme Derinliği (up to 12 bits) 8x8'e karşı 4x4 Dönüşüm Uyarlaması Kuantizasyon Ölçeklendirme Matrisleri Ayrı ayrı Cb ve Cr QP kontrolü Ayrı ayrı Renk Düzlemi Kodlaması Kestirmeli Kayıpsız Kodlama Film Gren Modellemesi QuickTime Nero Digital LEAD x264 Mainconcept dicas Elecard Telestream VSofts ProCoder3 Avivo RapiHD Intel IPP == Ayrıca bakınız == * Codec * Moving Picture Experts Group (MPEG) * ITU-T * MPEG-2 * MPEG-4 == Kaynakça == == Dış bağlantılar == === Tanıtım === * Overview of the H.264/AVC Video Coding Standard, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY * Overview and Introduction to the Fidelity Range Extensions * * === Standart === * * === Referans kodlayıcı/çözücü === * === Standartlaştırma kurulu dokümanları === * === Çeşitli === * * * * * * Kategori:MPEG Kategori:Video mesajlaşma