H.264/MPEG-4 AVC
Ö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 (İngilizce: "interlaced coding") 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 (İngilizce: "Bi-predictive pictures") 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"(İngilizce: "Variable Block-Size Motion Compensation (VBSMC)") 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ı"(İngilizce: "Macroblock-adaptive frame-field (MBAFF) coding"). 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ı"(İngilizce: "Picture-adaptive frame-field coding (PAFF ya da PicAFF)")
Yeni çevrimsel tasarım özellikleri:
Önceki çözüçülerde sıkça görülen parazit salınımları(İngilizce: "ringing") en aza indirerek kalıtsal(İngilizce: "residual") 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ı"(İngilizce: "Context-adaptive binary arithmetic coding (CABAC)"). Verilen bağlamdaki olasılıklarını bilerek görüntü akıntısı içindeki sözdizim(İngilizce: "syntax") 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"(İngilizce: "Context-adaptive variable-length coding (CAVLC)"). 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"(İngilizce: "variable length coding (VLC)").
Kayıp elastikiyeti özellikleri:
"Ağ soyutlama katmanı"(İngilizce: "Network Abstraction Layer (NAL)") 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. 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"(İngilizce: "Sequence Parameter Set (SPS)") ve "Resim Parametre Kümesi"(İngilizce: "Picture Parameter Set (PPS)"). 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"(İngilizce: "Flexible macroblock ordering (FMO)") ve "isteğe bağlı dilim düzenlemesi" (İngilizce: "arbitrary slice ordering (ASO)"). 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"(İngilizce: "data partitioning (DP)"). 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"(İngilizce: "redundant slices (RS)"). 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"(İngilizce: "frame numbering"). 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"(İngilizce: "start code") 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"(İngilizce: "Supplemental enhancement information (SEI)") ve "görüntü kullanım bilgisi"(İngilizce: "video usability information (VUI)"). 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.