Çerçeveler arası

Bir arası alan veya çerçeve arası veya arası resim olarak araçları sıkıştırma, video görüntü ya da bir çerçeve arası kestirim algoritması kodlanmış bir akışına ait bir çerçeve. Orijinal makro blokların konumunu tahmin etmek için önceden kodlanmış görüntülere bağlıdır . Bu algoritmanın amacı, bir bloğun halihazırda kodlanmış sözde referans görüntüdeki yer değiştirmesini ve mevcut görüntüdeki konumunu çeviren bir hareket vektörü tanımlamaktır. Bu tahmin aynı zamanda zamansal tahmin olarak da adlandırılır. Amacı, komşu görüntüler veya çerçeveler arasındaki zamansal fazlalıklardan yararlanmak ve böylece daha iyi bir sıkıştırma oranı elde etmektir. Uzamsal bir tahmin algoritması kullanılarak kodlanan çerçeveden farklıdır . Ara tahminin avantajı, hareketli bir nesneyi kodlamak için, halihazırda kodlanmış bir görüntüde mevcut bloğa benzeyen mevcut bir bloğu bulmanın ve bu iki blok arasındaki bileşenlerin değerlerindeki farkı kodlamanın yeterli olmasıdır. Oysa iç tahmin için, mevcut görüntünün her bir makro bloğu, oldukça kolay bir şekilde değişebilen komşularının dokusundan kodlanmalıdır.

Çerçeveler arası tahmin

Kodlanacak bir görüntü makro bloklara bölünür (16x16 piksel boyutunda bloklar). Ham piksellerin değerini doğrudan kodlamaktan kaçınmak için, her bir makro blok ya çerçeve içi tahminlerde olduğu gibi komşularından ya da referans görüntülerden (çerçeveler arası durum) tahmin edilir. Ara kodlama, bir referans görüntü üzerindeki mevcut bloğa benzer bir bloğun bulunmasından oluşur . Bu işlem, bir Blok eşleştirme algoritması ile gerçekleştirilir . Kodlayıcı böyle bir bloğu bulmayı başardıysa, iki bloğu bağlayan vektöre hareket vektörü ( (en) vektör hareketi ) kaydedilir ve bu vektör ile tahmin edilen vektör arasındaki fark kodlanır. Bu tahmin edilen vektör, standart tarafından tanımlanır ve halihazırda kodlanmış olan komşu makro blokların vektörlerinin bir fonksiyonudur. İşlem daha sonra tahmin hatasını, yani referans görüntüde tahmin edilen blok ile orijinal blok arasındaki parlaklık ve krominans bileşenlerinin değerindeki farkı hesaplar, bu da rezidüel blok olarak adlandırılır. İkincisi, dönüşüm ve nicemleme aşamalarından sonra ikili akışta kodlanacaktır . Video kodlamada, bu vektör arama adımına hareket tahmini adı verilir ve farklılıkların hesaplanması hareket telafisidir .

Şematik olarak:

Vecteur de mouvement - Vecteur prédit ⇒ Vecteur différentiel qui sera codé. Bloc ciblé - Bloc courant ⇒ Bloc résiduel qui sera transformé, quantifié et codé.

Aşağıdaki resim, ara tahmin sürecini göstermektedir:

Kod çözücünün bakış açısından, işlem, makro bloğun değerlerini eski haline getirmek için yalnızca artık bloğa ve vektöre ihtiyaç duyar. Aslında, referans görüntülerin de kodu önceden çözülür ve tahmin edilen vektör, tanımı standart tarafından bilindiği için bilinir. Ortaya çıkan kodu çözülmüş blok, nicelemeden dolayı kayıplı sıkıştırma olduğundan orijinal bloktan farklıdır .

Şematik olarak:

Vecteur prédit + Vecteur différentiel ⇒ Vecteur de mouvement à appliquer dans l'image de référence. Bloc ciblé + Bloc résiduel ⇒ Bloc décodé.

Bu tür bir tahminin avantajları ve dezavantajları vardır. Algoritma, mevcut bloğa çok yakın bileşen değerlerine sahip bir blok bulabilirse, tahmin hatası küçük olacaktır ve bu nedenle dönüştürüldükten ve sıkıştırıldıktan sonra, "hareket vektörü ve artık blok" kümesinin boyutu, sıkıştırılmamış akım bloğununki. Tersine, hareket tahmini uygun bir blok bulmazsa, tahmin hatası büyük olacaktır ve kodlanmış akış, mevcut sıkıştırılmamış bloğunkinden daha büyük bir boyut alacaktır. İkinci durumda, kodlayıcı bu bloğun ham kodlamasını seçer. Kısacası, tahmin ne kadar iyi olursa, fark o kadar küçük ve dolayısıyla sıkıştırma o kadar iyi olur.

Bu tahmin tekniği sınırlıdır çünkü tüm videoyu tek başına sıkıştırmak için kullanılamaz. Bir referans çerçevede hareket vektörü tarafından işaret edilen blok aynı zamanda bir çerçeveler arası tahmin modundan kodlanmışsa, kodlamasıyla ilgili olarak yapılan hatalar da bir sonraki bloğa yayılacaktır. Diğer bir deyişle, eğer tüm resimler sadece bu teknikle şifrelenmiş olsaydı, kod çözücünün video akışını senkronize etmesi mümkün olmayacaktır çünkü referans resimleri elde etmek imkansız olacaktır. Bu nedenle , içeriğinden yalnızca uzamsal bir tahmin algoritması ile kodlanan ve ek verilere ihtiyaç duymayan intra çerçeveler veya I-çerçeveler olarak da adlandırılan I görüntülerde olduğu gibi, belirli görüntüleri zamandan bağımsız olarak kodlamak gerekir. çözüldü. Bu güvenilir görüntülerden, daha sonra referans görüntülerin kodunu çözmek mümkün olacaktır.

Bir Resim Grubunun Yapısı (GOP)

Çeşitli codec bileşenlerinde iki tür ara çerçeve tanımlanmıştır: P görüntüler (P-kareler) ve B görüntüler (B-kareler). I-karelerle, bu üç görüntü türü, kodlama sırasında periyodik olarak tekrarlanan GOP ( (en) Resim Grubu ) adıyla bir görüntü grubu oluşturur . Bir GOP, bir I resminden oluşur ve genellikle birkaç P ve B resmi içerir; bu, tek bir I resminin tüm GOP'un kodunu çözebileceği anlamına gelir. Kod çözmenin senkronizasyonu, akıştaki I görüntülerinin periyodikliği sayesinde elde edilir.

Bir GOP'un tipik yapılarından biri IBBPBBP'dir ... I görüntüsü, ilk P görüntüsünü tahmin etmek için kullanılır, ardından bu iki görüntüden süreç, ilk iki B görüntüsünü tahmin eder.İkinci P görüntüsü, ilk P- çerçeve ve bu iki görüntü arasında yer alan iki B görüntüsü aşağıdaki resimler olacaktır. Aşağıdaki resimde bu GOP türü gösterilmektedir:

Görüntülerin öngörülebilmesi için kodlanacak görüntülerin sırasının değiştirilmesi gerekmektedir. Bu nedenle kodlama sırasında, bir sıralayıcı, GOP'un yapısını bilen görüntülerin türünü önceden belirler ve tüm referans görüntüleri elde etmek için kodlanacak görüntülerin sırasını değiştirir. Bu örnekte, görüntüleme sırası I B1 B2 p şeklindedir.  1 B3 B4 s.  2 ancak kodlama sırası I p.  1 B1 B2 s.  2 B3 B4. Görünür olması için GOP'un tam olarak çözülmesi gerektiğinden, ekrandaki görüntünün kod çözme ve çıktısı arasında bir gecikme süresi sağlamak gerekir.

Ara çerçeve türleri

Ara çerçeveler, kodu çözülecek referans görüntülere bağlı olan görüntü veya çerçeve türleridir. P-kareler ve B-kareler arasındaki fark, hareket tahmini ve hareket telafisinden oluşan tahmin algoritması tarafından kullanılan referans karelerine indirgenebilir.

P-çerçeve

P-kareler, geçmiş bir görüntüden ileriye doğru tahmin edilen görüntülerdir . Tahmin, daha önce yerleştirilmiş bir resimden, esas olarak bir I resminden yapılır ve daha az kodlama bilgisi gerektirir (bir I resminin boyutuna kıyasla yaklaşık% 50 kazanç). Kodlanacak bilgi, hareket vektörleri ve kalıntı bloğun dönüştürülmüş katsayıları tarafından çevrilen tahmin düzeltmesi ile ilgilidir .

B çerçevesi

B-kareler, çift yönlü tahmin edilen görüntüler olarak tanımlanır, yani gelecekteki bir görüntüden ve geçmiş bir görüntüden tahmin edilirler . Bu tip tahmin aynı zamanda P-çerçevelerinden daha az kodlama bilgisi gerektirir, çünkü bunlar, onu geçici olarak çerçeveleyen iki referans görüntüden tahmin edilebilir ve enterpolasyonlu olabilir. P-kareler gibi, B-kareleri de kodu çözülecek referans karelerin yanı sıra hareket vektörü ve artık blok bilgisine ihtiyaç duyar. Çok fazla hata yayılmasını önlemek için, B görüntüleri genellikle bir referans görüntü olarak kullanılmaz.

H.264 standardındaki tahmin geliştirmeleri

H.264 standardındaki en büyük iyileştirmelerden biri çerçeveler arası tahmin. İzin veriyor:

H.264 blok bölümleme

Hassas ve verimli hareket telafisi elde etmek için, her bir parlaklık makro bloğu alt bloklara bölünebilir (aşağıdaki şekle bakın). MPEG-2 standardında , bölümlemeler 4 adettir: 16x16 piksellik 1 blok, 16x8 piksellik 2 blok, 8x16 piksellik 2 blok veya 8x8 piksellik 4 blok. Her bölümleme, bir iç kodlama modu ile ilişkilidir. Her mod için, hareket tahmini, referans görüntüde aynı boyutta bir bloğa işaret eden alt blok için en iyi hareket vektörünü bulur ve telafi, verilen mod için makro blok kodlama maliyetinin bir yaklaşık değerini hesaplar. Tüm modlar tamamlandıktan sonra, algoritma en düşük maliyeti veren bölümleme modunu seçer ve makro bloğun kesin kodlamasını gerçekleştirir.

H.264 standardında, 8x8'lik bir bloğu 4x8 piksel, 8x4 piksel veya 4x4 piksel boyutunda alt bloklara bölme olasılığı ile birlikte bölümleme modlarının sayısı artar.

Çeyrek piksel hassasiyeti

Hareket vektörü aramasında daha kesin olmak için, referans görüntü daha yüksek bir çözünürlüğe sahip olacak şekilde büyütülür. Mükemmel piksel çözünürlükle çalışmak yerine, vektörün koordinatları ondalık piksel sayısına ayarlanabilir. Mevcut bloğa benzer bir blok elde etme olasılığı daha yüksektir ve bu nedenle arama çok daha verimlidir. MPEG-2 standardında vektör hassasiyeti yarım piksele ulaşabilir. H.264'te, her bir ara tahmin modu için çeyrek piksel hassasiyeti seçilebilir. Var olmayan alt piksel değerlerini kullanmak için enterpolasyon teknikleri kullanılır. Yarım pikselleri elde etmeye yönelik enterpolasyon, mevcut pikselin çevresine 6 uzunluğunda bir filtre uygulanmasını içerir. Bu ilk işlem, H.264 standardında çift doğrusal enterpolasyon ile gerçekleştirilen çeyrek piksel değerlerinin hesaplanmasına izin verir. Aşağıdaki şekil, çeyrek piksel hassasiyetine sahip olmak için hesaplanması gereken farklı pikselleri göstermektedir.

Subpel interpolation.jpg

Birden çok referans

Bu çoklu referanslar, hareket tahmin adımı ile ilgilidir. Her bölüm veya alt bölüm için önceden kodlanmış görüntüler arasında en iyi referans görüntünün hangisi olduğunu bulmayı mümkün kılar. Bu nedenle, bir makro bloğu kodlamak için kullanılan birkaç referans görüntü olabilir. Bu bir P görüntüsü ise, geçmiş referans görüntülerinin sayısı 4'e kadar olabilir, yani, arama algoritması mevcut bir blok için her bir referans görüntü için bir vektör kaydeder ve kodlama maliyetini hesaplar. Tüm referansları gözden geçirdikten sonra, en düşük maliyeti karşılaştırır ve seçer. Referans görüntüyle ilgili bilgiler daha sonra kodlanır. B görüntüleriyle ilgili olarak, referansların sayısı da artabilir, ancak yalnızca geçmiş görüntülerde olabilir , bu nedenle iki referans görüntü seçersek, işlem en yakın geçmiş görüntüyü ve gelecekteki görüntüyü kullanacaktır . Dört görüntü seçilirse, gelecekteki görüntü ve mevcut görüntüye en yakın geçmiş üç görüntü kullanılacaktır. Standartta referans görüntüler, geçmiş görüntüler için List0 ve gelecekteki görüntüler için List1 adı verilen tamponlarda tutulur . Referans görüntülerden dolayı bir kodlama maliyeti olsa bile, bu teknik görüntünün kalitesini arttırmayı ve daha iyi sıkıştırmayı mümkün kılar, tahmin hatası genellikle daha az önemlidir.

Birden çok referans.jpg

Geliştirilmiş Doğrudan / Atlama modu

Atlama ve Doğrudan modları, özellikle B görüntülerinde sıklıkla kullanılır ve kodlanacak bit sayısını önemli ölçüde azaltırlar. Bu mod algoritma tarafından seçilirse, hiçbir ek bilgi kodlanmaz, hareket vektörü ve kalıntı bloğu olmaz. Bu durumda, kod çözücü, önceden kodlanmış olan komşu makro bloklardan tanımlanan tahmin vektörünü çıkarır. Kodlayıcı, yalnızca atlama makro bloğuna karşılık gelen tahmin modu bilgilerini kaydeder.

H.264 standardında, harekete geçmenin iki yolu vardır:

Mevcut bloğun hareket vektörünü çıkarmak için aynı konumda bulunan List1 görüntüsünden bloğun hareket vektörünü kullanır. List1 arabellek bloğu List0 bloğunu referans olarak kullanır.

Doğrudan skip.jpg

Mevcut görüntüdeki komşu makro bloklardan gelen hareketi tahmin eder. Olası kriter, hareket vektörünü komşu bloktan kopyalamak olabilir. Bu modlar, görüntünün çok fazla hareketin olmadığı alanlarda bile kullanılır.

Block partition.jpg

Yukarıdaki şekilde, pembe bloklar Direct / Skip modu kullanılarak atlanmış bloklardır. Bu örnekte, resim B'deki makro blokların çoğu bu modla kodlanmıştır.

Ek Bilgiler

Terimi kullanımı, ancak çerçeve gayri kullanım yaygındır, daha genel bir kavramdır sözcüğü ile birlikte kullanılır resim yerine çerçeve görüntü hem de tam bir kare ya da bir tek olabileceğinden alanı. (Alan) geçmeli .

Codec gibi video MPEG-2 , H.264 ya da Ogg Theora bir veya daha fazla arası çerçeve ile aşağıdaki ana kareler ile bir akım veri miktarını azaltır. Tipik olarak, bu kareler kesinlikle gerekenden daha düşük bir bit hızı kullanır , çünkü her karenin büyük bir kısmı - genellikle - bir öncekine benzer. Bu nedenle yalnızca hareketli parçaların yeniden kodlanması gerekir.

Referanslar

  1. H.264 yazılımı: http://iphome.hhi.de/suehring/tml/download/
  2. T. Wiegand, GJ Sullivan, G. Bjøntegaard, A.Luthra: H.264 / AVC Video Kodlama Standardına Genel Bakış . Video Teknolojisi için Devreler ve Sistemler Üzerine IEEE İşlemleri, Cilt. 13, No. 7, Temmuz 2003
  3. ThomasWiegand, Gary J. Sullivan, "  H.264 / AVC Video Kodlama Standardına Genel Bakış  " , http://ip.hhi.de , IEEE,2003(erişim tarihi: 19 Ocak 2011 )
  4. Serkan Öktem ve İlker Hamzaoğlu, "  An Efficient Hardware Architecture for Quarter-Pixel Accurate H.264 Motion Estimation  " , http://people.sabanciuniv.edu (erişim tarihi 19 Ocak 2011 )
  5. Jeremiah Golston ve Dr. Ajit Rao, "  Video kodek öğreticisi: H.264, VC-1 ve diğer gelişmiş kodeklerle takas  " , http://www.eetimes.com ,2006(erişim tarihi: 19 Ocak 2011 )

Ayrıca görün

İlgili Makaleler

Dış bağlantılar