Kompenzace pohybu - Motion compensation

Vizualizace kompenzace pohybu bloku MPEG. Bloky, které se přesunuly z jednoho rámečku do druhého, jsou zobrazeny jako bílé šipky, díky čemuž jsou pohyby různých platforem a postavy jasně viditelné.

Kompenzace pohybu je algoritmická technika používaná k predikci rámce ve videu, vzhledem k předchozím a/nebo budoucím snímkům účtováním pohybu kamery a/nebo objektů ve videu. Používá se při kódování video dat pro kompresi videa , například při generování souborů MPEG-2 . Kompenzace pohybu popisuje obrázek z hlediska transformace referenčního obrázku na aktuální obrázek. Referenční obrázek může být předchozí v čase nebo dokonce z budoucnosti. Když lze obrazy přesně syntetizovat z dříve přenesených/uložených obrazů, lze zlepšit účinnost komprese.

Kompenzace pohybu je jednou ze dvou klíčových technik komprese videa používaných ve standardech kódování videa spolu s diskrétní kosinovou transformací (DCT). Většina standardů kódování videa, jako jsou formáty H.26x a MPEG , obvykle používá hybridní kódování DCT s kompenzací pohybu, známé jako bloková kompenzace pohybu (BMC) nebo DCT s kompenzací pohybu (MC DCT).

Funkčnost

Kompenzace pohybu využívá skutečnosti, že často je u mnoha snímků filmu jediným rozdílem mezi jedním snímkem výsledek pohybu kamery nebo pohybu objektu v rámečku. Ve vztahu k souboru videa to znamená, že většina informací, které představují jeden snímek, bude stejná jako informace použité v dalším snímku.

Pomocí kompenzace pohybu bude video stream obsahovat některé plné (referenční) snímky; pak jedinou informací uloženou pro rámce mezi nimi by byly informace potřebné k transformaci předchozího rámce na další snímek.

Ilustrovaný příklad

Následuje zjednodušené ilustrované vysvětlení fungování kompenzace pohybu. Dva po sobě jdoucí snímky byly zachyceny z filmu Sen slonů . Jak je patrné z obrázků, spodní rozdíl (kompenzovaný pohybem) mezi dvěma snímky obsahuje podstatně méně detailů než předchozí obrázky, a komprimuje se tedy mnohem lépe než ostatní. Informace, které jsou nutné ke kódování kompenzovaného rámce, budou tedy mnohem menší než u rozdílového rámce. To také znamená, že je také možné kódovat informace pomocí rozdílového obrazu za cenu nižší účinnosti komprese, ale uložením složitosti kódování bez kódování s kompenzací pohybem; ve skutečnosti, že pohybově kompenzované kódování (spolu s odhadem pohybu, kompenzací pohybu) zabírá více než 90% složitosti kódování.

Typ Příklad rámu Popis
Originál Příklad kompenzace pohybu-original.jpg Plně originální rámeček, jak je zobrazeno na obrazovce.
Rozdíl Kompenzace pohybu příklad-rozdíl.jpg Rozdíly mezi původním rámečkem a dalším rámečkem.
Rozdíl kompenzovaný pohybem Rozdíl kompenzovaný příkladem kompenzace pohybu.jpg Rozdíly mezi původním rámečkem a dalším rámečkem, posunuté doprava o 2 pixely. Posunutí rámu kompenzuje pro panning kamery, tak tam je větší překrytí mezi dvěma rámy.

MPEG

V MPEG jsou obrázky předpovídány z předchozích snímků ( P snímky ) nebo obousměrně z předchozích a budoucích snímků ( B snímky ). B rámce jsou složitější, protože obrazová sekvence musí být přenášena a ukládána mimo pořadí, aby byl k dispozici budoucí rámec pro generování B rámců.

Po předpovídání snímků pomocí kompenzace pohybu kodér najde reziduum, které je poté komprimováno a přeneseno.

Globální kompenzace pohybu

V globální kompenzaci pohybu model pohybu v zásadě odráží pohyby kamery, jako například:

  • Dolly - pohyb kamery vpřed nebo vzad
  • Track - pohyb kamery doleva nebo doprava
  • Výložník - pohyb kamery nahoru nebo dolů
  • Pan - otáčení kamery kolem její osy Y, posunutí pohledu doleva nebo doprava
  • Naklonění - otočení kamery kolem její osy X, posunutí pohledu nahoru nebo dolů
  • Roll - otáčení kamery kolem osy pohledu

Funguje to nejlépe pro nepohyblivé scény bez pohybujících se předmětů.

Globální kompenzace pohybu má několik výhod:

  • Modeluje dominantní pohyb, který se obvykle vyskytuje ve videosekvencích, s několika parametry. Podíl těchto parametrů na přenosové rychlosti je zanedbatelný.
  • Nerozdělí rámce. Tím se zabrání artefaktům na hranicích oddílů.
  • Přímka (v časovém směru) pixelů se stejnými prostorovými polohami v rámci odpovídá souvisle se pohybujícímu bodu ve skutečné scéně. Jiná schémata MC zavádějí nespojitosti v časovém směru.

MPEG-4 ASP podporuje GMC se třemi referenčními body, ačkoli některé implementace mohou využívat pouze jeden. Jediný referenční bod umožňuje pouze translační pohyb, který pro své relativně vysoké náklady na výkon poskytuje malou výhodu oproti kompenzaci pohybu na základě bloku.

Pohybující se objekty v rámci nejsou dostatečně reprezentovány globální kompenzací pohybu. Proto je také zapotřebí místní odhad pohybu .

Pohybem kompenzované DCT

Blokovat kompenzaci pohybu

Bloková kompenzace pohybu (BMC), známá také jako pohybově kompenzovaná diskrétní kosinová transformace (MC DCT), je nejpoužívanější technikou kompenzace pohybu. V BMC jsou snímky rozděleny do bloků pixelů (např. Makrobloky 16 × 16 pixelů v MPEG ). Každý blok je předpovídán z bloku stejné velikosti v referenčním rámci. Bloky nejsou žádným způsobem transformovány kromě toho, že jsou posunuty do polohy predikovaného bloku. Tento posun je reprezentován pohybovým vektorem .

Pro využití redundance mezi sousedními blokovými vektory (např. Pro jeden pohybující se objekt pokrytý více bloky) je běžné kódovat pouze rozdíl mezi aktuálním a předchozím pohybovým vektorem v bitovém proudu. Výsledek tohoto diferenciačního procesu je matematicky ekvivalentní globální kompenzaci pohybu, která je schopná posouvání. Dále v kódovacím potrubí bude kodér entropie využívat výslednou statistickou distribuci pohybových vektorů kolem nulového vektoru ke zmenšení výstupní velikosti.

Je možné posunout blok o neceločíselný počet pixelů, který se nazývá přesnost subpixelů . Mezi pixely jsou generovány interpolací sousedních pixelů. Běžně se používá přesnost půl pixelu nebo čtvrt pixelu ( Qpel , používaný H.264 a MPEG-4/ASP). Výpočetní náklady na přesnost subpixelů jsou mnohem vyšší kvůli extra zpracování potřebnému pro interpolaci a na straně kodéru mnohem větší počet potenciálních zdrojových bloků, které mají být vyhodnoceny.

Hlavní nevýhodou kompenzace pohybu bloku je, že zavádí nespojitosti na hranicích bloku (blokovací artefakty). Tyto artefakty se objevují ve formě ostrých horizontálních a vertikálních hran, které jsou lidským okem snadno viditelné a vytvářejí falešné hrany a vyzváněcí efekty (velké koeficienty ve vysokofrekvenčních dílčích pásmech) díky kvantování koeficientů Fourierovy transformace používané pro transformační kódování ze zbytkových rámy

Blok kompenzace pohybu se rozděluje do aktuálního rámce do nepřekrývajících se bloků, a zobrazením kompenzace pohybu, vektoru, uvádí, kde tyto bloky pocházejí z (společný mylnou je, že předchozí rámec je rozdělen do nepřekrývajících se bloků, a kompenzace pohybu vektory říci, kde tyto bloky se přesunou do ). Zdrojové bloky se obvykle ve zdrojovém rámci překrývají. Některé algoritmy komprese videa shromažďují aktuální snímek z několika různých dříve přenesených snímků.

Rámce lze také předvídat z budoucích rámců. Budoucí rámce pak musí být zakódovány před předpokládanými rámci, a proto pořadí kódování nemusí nutně odpovídat skutečnému pořadí rámců. Takové rámce jsou obvykle předpovídány ze dvou směrů, tj. Z rámců I nebo P, které bezprostředně předcházejí nebo následují predikovaný rámec. Tyto obousměrně predikované rámce se nazývají B-rámce . Schéma kódování může být například IBBPBBPBBPBB.

Dále bylo navrženo použití trojúhelníkových dlaždic pro kompenzaci pohybu. V rámci tohoto schématu je snímek vedle sebe s trojúhelníky a další snímek je generován provedením afinní transformace na těchto trojúhelnících. Zaznamenávají/přenášejí se pouze afinní transformace. To je schopno řešit zvětšení, otáčení, překlad atd.

Variabilní kompenzace pohybu velikosti bloku

Kompenzace pohybu s proměnnou velikostí bloku (VBSMC) je použití BMC se schopností kodéru dynamicky vybrat velikost bloků. Při kódování videa může použití větších bloků snížit počet bitů potřebných k reprezentaci pohybových vektorů, zatímco použití menších bloků může mít za následek menší množství predikčních zbytkových informací ke kódování. Další oblasti práce zkoumaly použití metrik vlastností proměnných tvarů za hranicemi bloku, ze kterých lze vypočítat vektory rozhraní. Starší konstrukce, jako je video H.261 a MPEG-1, obvykle používají pevnou velikost bloku, zatímco novější, jako jsou H.263 , MPEG-4 Part 2 , H.264/MPEG-4 AVC a VC-1, poskytují kodér schopnost dynamicky zvolit, jaká velikost bloku bude použita k reprezentaci pohybu.

Překrytí kompenzace pohybu bloku

Překrytá kompenzace pohybu bloku (OBMC) je dobrým řešením těchto problémů, protože nejen zvyšuje přesnost predikce, ale také se vyhýbá blokování artefaktů. Při použití OBMC jsou bloky obvykle dvakrát větší v každé dimenzi a překrývají se kvadrantově se všemi 8 sousedními bloky. Každý pixel tedy patří do 4 bloků. V takovém schématu existují 4 predikce pro každý pixel, které jsou shrnuty do váženého průměru. Za tímto účelem jsou bloky spojeny s funkcí okna, která má tu vlastnost, že součet 4 překrývajících se oken je všude roven 1.

Studie metod pro snížení složitosti OBMC ukázaly, že příspěvek k funkci okna je pro diagonálně sousedící blok nejmenší. Snížení hmotnosti tohoto příspěvku na nulu a zvýšení ostatních vah o stejné množství vede k podstatnému snížení složitosti bez velkého postihu kvality. V takovém schématu pak každý pixel náleží spíše 3 blokům než 4 a místo použití 8 sousedních bloků se pro kompenzaci každého bloku použijí pouze 4. Takové schéma se nachází v režimu H.263 Annex F Advanced Prediction

Korekce pohybu Quarter Pixel (QPel) a Half Pixel

Při kompenzaci pohybu jsou čtvrtinové nebo poloviční vzorky ve skutečnosti interpolované dílčí vzorky způsobené frakčními pohybovými vektory. Na základě vektorů a úplných vzorků lze dílčí vzorky vypočítat pomocí bicubického nebo bilineárního 2-D filtrování. Viz článek 8.4.2.2 „Interpolační proces frakčních vzorků“ standardu H.264.

Techniky kódování 3D obrazu

Při stereoskopickém kódování videa se využívá kompenzace pohybu

Ve videu je čas často považován za třetí dimenzi. Techniky kódování statických obrázků lze rozšířit do další dimenze.

JPEG 2000 používá vlnovky, které lze také adaptivně použít ke kódování pohybu bez mezer mezi bloky. Frakční pixelové afinní transformace vedou ke krvácení mezi sousedními pixely. Pokud není použito vyšší vnitřní rozlišení, delta obrázky většinou bojují proti rozmazání obrazu. Delta obraz může být také kódován jako vlnky, takže se okraje adaptivních bloků shodují.

Techniky kódování 2D+Delta využívají kódování kompatibilní s H.264 a MPEG-2 a mohou použít kompenzaci pohybu pro kompresi mezi stereoskopickými obrázky.

Dějiny

Předchůdce konceptu kompenzace pohybu pochází z roku 1929, kdy RD Kell v Británii navrhl koncept přenosu pouze částí analogové video scény, která se změnila z rámce na snímek. Koncept kompenzace pohybu mezi snímky se datuje do roku 1959, kdy výzkumníci NHK Y. Taki, M. Hatori a S. Tanaka navrhli prediktivní mezisnímkové kódování videa v časové dimenzi .

Pohybem kompenzované DCT

Praktickou kompresi videa s kompenzací pohybu umožnil vývoj kódování DCT (MC DCT) s kompenzací pohybu, nazývaného také bloková kompenzace pohybu (BMC) nebo kompenzace pohybu DCT. Jedná se o hybridní kódovací algoritmus, který kombinuje dvě klíčové techniky komprese dat: kódování diskrétní kosinovou transformací (DCT) v prostorové dimenzi a prediktivní kompenzaci pohybu v časové dimenzi . DCT kódování je technika ztrátové blokové kompresní transformační kódovací techniky, kterou poprvé navrhl Nasir Ahmed , který ji původně zamýšlel pro kompresi obrazu , v roce 1972.

V roce 1974 zavedl Ali Habibi z University of Southern California hybridní kódování, které kombinuje prediktivní kódování s transformačním kódováním. Jeho algoritmus byl však původně omezen na kódování uvnitř rámce v prostorové dimenzi. V roce 1975 John A. Roese a Guner S.Robinson rozšířili Habibiho hybridní kódovací algoritmus na dočasnou dimenzi pomocí transformačního kódování v prostorové dimenzi a prediktivního kódování v časové dimenzi a vyvinuli hybridní kódování s kompenzací pohybu mezi snímky . Pro kódování prostorové transformace experimentovali s DCT a rychlou Fourierovou transformací (FFT), přičemž pro oba vyvinuli hybridní kodéry mezi snímky, a zjistili, že DCT je díky své snížené složitosti nejefektivnější, schopné komprimovat obrazová data dolů až 0,25 bitů na pixel pro scénu videotelefonu s kvalitou obrazu srovnatelnou s kodérem uvnitř rámce vyžadujícím 2 bitů na pixel.

V roce 1977 vyvinul Wen-Hsiung Chen rychlý algoritmus DCT s CH Smith a SC Fralick. V roce 1979 Anil K.Jain a Jaswant R. Jain dále vyvinuli pohybově kompenzovanou DCT kompresi videa, nazývanou také bloková kompenzace pohybu. To vedlo k tomu, že Chen vyvinul praktický algoritmus komprese videa, nazývaný DCT s kompenzací pohybu nebo kódování adaptivní scény, v roce 1981. DCT s kompenzací pohybu se později od konce 80. let stal standardní kódovací technikou pro kompresi videa.

Prvním standardem kódování digitálního videa byl H.120 , vyvinutý společností CCITT (nyní ITU-T) v roce 1984. H.120 používal kódování DPCM s kompenzací pohybu, což bylo pro kódování videa neúčinné, a H.120 byl proto nepraktický kvůli nízký výkon. Standard H.261 byl vyvinut v roce 1988 na základě komprese DCT s kompenzací pohybu a byl to první praktický standard kódování videa. Od té doby byla komprese DCT s kompenzací pohybu převzata všemi hlavními standardy kódování videa (včetně formátů H.26x a MPEG ), které následovaly.

Viz také

Aplikace

Reference

externí odkazy