Menu

H.265 špičkový videokodek

Nový videostandard H.265 by se měl v tomto roce značně rozšířit. Umožňuje totiž oproti svému předchůdci dvakrát efektivnější komprimaci filmů.

MARKUS MANDAU

Vsoučasné době je standardem pro kódování videa H.264. Ať už se budete dívat na sportovní přenos na veřejnoprávní televizi, nebo si koupíte seriál na Apple Store, případně si stáhnete film a pak přehráváte soubor MP4 nebo MKV, pohyblivé obrázky jsou komprimovány pomocí H.264 a dekodér H.264 vašeho zařízení je pak přehraje. Od ledna letošního roku je už ale k dispozici nástupce tohoto standardu, označovaný jako H.265 nebo také HEVC (High Efficiency Video Coding). Slibuje o 50 procent vyšší účinnost komprimace, což znamená, že při srovnání s H.264 bude například on-line film potřebovat pouze poloviční šířku pásma při stejné kvalitě obrazu, případně při stejném datovém toku může být video dvakrát tak kvalitní. H.265 přitom není úplně nová záležitost, jde spíše o vylepšené technologie, které byly zavedeny už před nebo s H.264 – vyžadují však vyšší výpočetní výkon, který je nyní k dispozici.

Lepší, ale mnohem složitější než H.264

Zjednodušeně řečeno, každý film je sled jednotlivých snímků (frames). Při konvertování je každý snímek rozdělen kodérem na velké bloky. Jas a barevné hodnoty každého bloku jsou transformovány do frekvence (transformace), což zjednodušuje kodéru následné zpracování (kvantování), při kterém skutečně dochází k redukci dat. Ve finále jsou data „zabalena“ podobně jako třeba soubory ZIP. Takto kodeky postupovaly v podstatě od začátku. Se zavedením standardu MPEG se proces zdokonalil o kompresi inter-frame (i-frame), kdy se zjišťují rozdíly mezi snímky a ukládají se pouze rozdíly, které popisují odlišnosti snímku od snímku předchozího. Pracuje se tedy se souborem snímků nazvaným GOP (Group of Picture). V GOP bývá různý počet snímků, průměrný počet je 12. GOP začínají a končí celými snímky s běžnou JPEG kompresí. Uprostřed leží dva různé typy vypočítaných snímků, které obsahují pouze rozdílová data oproti celému snímku. Nazývají se P-snímky a B-snímky. P-snímky jsou vypočteny na základě předpovědi pohybu objektů z i-snímku. K této předpovědi se používají pohybové vektory. B-snímky představují rozdíl mezi i-snímky a P-snímky. Pokud mají snímky podobný obsah, komprese je velmi účinná.

Na rozdíl od inter-frame predikce zavadí H.264 predikci i uvnitř jednoho snímku. Kóder H.264 neurčuje frekvenční hodnoty na celém snímku, ale zjišťuje pouze rozdíly mezi pixely. Pokud je tedy na snímku velká plocha modrého nebe, dojde ke značné komprimaci, protože sousední barvy a hodnoty jasu jsou téměř totožné. Pro srovnání – H.264 komprese jednoho snímku je asi o 50 procent účinnější než JPEG. Cílem kodeku je pak najít co nejvíce podobností ve stejných nebo sousedních snímcích. A právě přesnější zjišťování podobností s lepším výsledkem a při vyšší výpočetní námaze – to je téma nového kodeku H.265. Také H.265 používá intra- i inter-frame predikci, ale kodek může spustit mnohem přesnější hledání podobných bloků. V případě H.264 je celý snímek rozdělen na makrobloky o velikosti 16×16 pixelů. Kodér pak každý makroblok konvertuje do barevného prostoru YCrCb (jas, modrá složka, červená složka). H.265 odstraňuje fixní velikost bloků a místo toho má blok CTU (Coding Tree Unit) velikost stanovenou podle rozlišení videa – buď 16×16 (video s malým rozlišením), nebo 32×32 až 64×64 (u HD videa).

Každá CTU se rozdělí na kódovací jednotky (CU – Coding Unit), které jsou nezávisle na sobě komprimovány tou nejefektivnější metodou (intra- nebo inter-frame predikce). Velikost CU může být mezi 64×64 a 8×8 bodů, v níž jsou hodnoty jasu kódovány odděleně od hodnoty barev. Jednotky, které obsahují pouze hodnoty jasu nebo barevné hodnoty, se nazývají kódovací bloky (CB – Coding Blocks). Pro predikci kodek rozdělí BC na různé bloky predikce (PB – Predictions Blocks), přičemž k nim je k dispozici osm kopií (viz vlevo). Komplexní rozdělovací proces umožňuje vybírat bloky (i v detailově bohaté filmové sekvenci), které jsou pokud možno jednotné, tj. skládají se z mála jasových nebo barevných hodnot. Komprimace je pak velmi účinná.

Optimalizované kódovací technologie

H.265 predikce se jen nepatrně liší od H.264. Proto musí kodér používat velké části okolních snímků pro infra-frame predikci k určení rozdílu hodnot, což zvyšuje účinnost kódování o 20 procent. Pro inter-frame predikci vektoru pohybu lze použít sousední PB (Merge Mode). Zvýšená flexibilita při kódování H.265 ale potřebuje mnohem vyšší výpočetní výkon. Proto dekodér H.265 poskytuje technologie pro paralelní zpracování. Při paralelním zpracování lze dekódovat několik individuálních CTU série snímků (viz vlevo) současně. U filmu 1 080p s CTU o velikosti 64×64 může dekodér zpracovávat až 16 vláken současně.

Freewarový kodér H.265 je bohužel zatím stále v nedohlednu, ale pro různé komerční programy pro videostřih by měl být k dispozici upgrade s podporou H.265 už na podzim. Společnosti jako Magix nebo Adobe už uvedení H.265 kodéru oznámily. H.265 dekodér se může rozšířit snadněji, protože se může do zařízení (tabletů, smartphonů) dostat přes update systému nebo firmwaru. Trochu déle bude trvat přechod u HDTV. H.265 souvisí s přechodem na 4K (3 860×2 140) rozlišení, protože norma H.264 pro něj nemá připraven vhodný profil.

autor@chip.cz

H.265 V DETAILECH

Nový videostandard je optimalizován tak, aby hledal co nejvíce bloků se stejnými nebo podobnými hodnotami jasu a barev, protože pak stačí uložit tyto hodnoty pouze pro jeden blok, a ostatní je mohou snadno použít. Aby to fungovalo optimálně, musí kodér flexibilně přizpůsobit velikost a tvar bloků. To však vyžaduje hodně výpočetního výkonu.

VYTVÁŘENÍ BLOKŮ PODLE OBSAHU

H.265 používá jednoduché členění jednoho snímku na makrobloky o velikosti 16×16 bodů. Kromě toho kodér vytváří kódovací jednotky (Coding Tree Units), jejichž velikost závisí na rozlišení. Pro film s vysokým rozlišením jsou typické CTU o velikosti 64×64 bodů. V závislosti na obsahu snímku se CTU rozděluje do různě velkých kódovacích bloků. Ty slouží jako základ pro predikci.

ODVOZENÍ OBSAHU

PŘES PREDIKCI Predikce znamená, že kodér neukládá absolutní hodnoty jasu a barvy, ale pouze rozdíly mezi dalšími bloky, na které se odkazuje jako pohybový vektor. Pro intrapredikci používá kodér H.265 pixely přilehlých bloků. Pro interpredikci vyhledává podobné bloky přilehlých snímků. K dispozici má osm predikčních bloků (PB). Pro každý PB stanoví individuální vektor.

MULTITHREADING

Komplexní predikce H.265 dekodéru vyžaduje při přehrávání velký výpočetní výkon. Pomáhá tedy paralelní zpracování dat, kdy pro každou blokovou sekvenci je použit jeden individuální thread (vlákno). Začíná se dekódováním CTU (Coding Tree Units) vlevo nahoře – ta musí být dekódována jako první.

 
 


Dokumenty ke stažení