Formát kódování videa

formát videa

Formát kódování videa[1][2] (někdy též formát komprese videa) je formát obsahu pro ukládání nebo přenos digitálního videa (v datovém souboru nebo bitstreamu). Příklady formátů kódování videa jsou MPEG-2 Part 2, MPEG-4 Part 2, H.264 (MPEG-4 Part 10), HEVC, Theora, RealVideo RV40, VP9 a AV1. Konkrétní softwarová nebo hardwarová implementace schopná komprese nebo dekomprese do nebo z daného formátu kódování videa se nazývá video kodek. Příkladem video kodeku je Xvid, což je jeden z několika různých kodeků, které softwarově implementují kódování a dekódování videa do a z formátu kódování videa MPEG-4 Part 2.

Některé formáty kódování videa jsou popsány detailní technickou specifikací. Některé tyto specifikace jsou napsány a schváleny standardizační organizací jako technické standardy a jsou tudíž známy jako standardy kódování videa. Pojem „standard“ se někdy kromě formálních standardů používá i pro de facto standardy.

Video obsah zakódovaný v určitém formátu kódování videa je běžně spojen s audio streamem (zakódovaným ve formátu kódování audia) uvnitř multimediálního kontejneru ve formátu jako AVI, MP4, FLV, RealMedia nebo Matroska. Uživatel tedy běžně nemá třeba soubor H.264, ale video soubor .mp4, což je kontejner ve formátu MP4, obsahující video zakódované ve fomátu H.264, často společně se zvukem zakódovaným ve formátu AAC. Formáty multimediáních kontejnerů mohou podporovat řadu různých formátů kódování videa; například MP4 kontejner může obsahovat video ve formátu kódování videa MPEG-2 Part 2 nebo H.264, kromě jiných. Dalším příkladem je původní specifikace typu souboru WebM, která specifikovala formát kontejneru (Matroska), ale také přesně který formát komprese videa (VP8) a audia (Vorbis) je v kontejneru použit, přestože kontejner ve formátu Matroska sám o sobě může obsahovat obraz a zvuk i v jiných formátech kódování (později byla do WebM přidána podpora VP9 videa a Opus audia).

Rozdíl mezi pojmy „formát“ a „kodek“ editovat

Přestože se o formátech kódování videa jako H.264 někdy nesprávně mluví jako o „kodecích“, existuje jasný koncepční rozdíl mezi specifikací a jejími implementacemi. Formáty kódování videa jsou popsány ve specifikacích a software nebo hardware, který kóduje nebo dekóduje data do nebo z daného formátu kódování videa z nebo do nekomprimovaného videa, jsou implementace těchto specifikací. Jako analogii lze uvést např. to, že formát kódování videa H.264 (specifikace) je ke kodeku OpenH264 (konkrétní implementace) tím, čím je programovací jazyk C (specifikace) k překladači GCC (konkrétní implementace). Ke každé specifikaci (např. H.264) může být mnoho kodeků, které ji implementují (např. x264, OpenH264, Nero Digital…).

Toto odlišení se ne vždy terminologicky jednotně odráží v literatuře. Specifikace H.264 nazývá H.261, H.262, H.263 a H.264 standardy kódování videa („video coding standard“) a neobsahuje slovo „kodek“.[3] Alliance for Open Media jasně rozlišuje mezi formátem kódování videa AV1 a s ním spojeným kodekem, který vyvíjejí; specifikaci kódování AV1 videa říkají specifikace bitstreamu a procesu dekódování („Bitstream & Decoding Process Specification“).[4] Specifikace VP9 samotnému VP9 říká kodek.[5]

Formát kódování videa nediktuje všechny algoritmy, které mají použít kodeky implementující daný formát. Například velká část typického způsobu komprese se zabývá nalézáním podobností mezi snímky a poté dosažením komprese kopírováním dříve zakódovaných podobných částí obrazu (např. makrobloky) a přidáním malých rozdílů podle potřeby. Nalezení optimálních kombinací je problémem, který prakticky nemá optimální řešení.[6] Přestože formát kódování videa musí podporovat takovou kompresi napříč snímky ve formátu bitstreamu, tím, že zbytečně nepřikazuje konkrétní algoritmy pro jednotlivé kroky kódování, mají kodeky implementující danou specifikaci určitou volnost k optimalizaci a inovacím ve svých volbách algoritmů. Například sekce 0.5 specifikace H.264 říká, že algoritmy kódování nejsou součástí specifikace.[3] Volný výběr algoritmu pro kodeky též umožňuje jejich různou složitost pro ten samý formát kódování, takže živý stream může používat rychlý, ale z hlediska velikosti neefektivní algoritmus, zatímco jednorázové zakódování DVD pro pozdější velkovýrobu může obětovat delší čas kódování za efektivní využití místa.

Z toho rovněž vyplývá, že výstupy kodeků různých výrobců implementujících stejný formát (např. kodeky Xvid, DivX Codec nebo FFmpeg MPEG-4, které používají stejný formát MPEG-4 Part 2) se zpravidla liší, mohou mít jiný poměr kvalita/velikost, rychlost nebo jiné parametry. Přesto jsou vzájemně kompatibilní (video zakódované jedním z nich lze dekódovat jiným), protože používají stejný formát kódování.

Historie editovat

Prvním standardem kódování digitálního videa byl H.120, vytvořený ITU v roce 1984.[7] H.120 nebyl v praxi použitelný kvůli slabé kvalitě.[7] Jeho nástupce z roku 1988, H.261 od ITU, byl prvním praktickým standardem kódováním videa.[7] Následoval MPEG-1, navržený Motion Picture Experts Group v roce 1991, a v roce 1994 MPEG-2/H.262.[7]

Jedním z nejrozšířenějších formátů kódování videa současnosti je H.264. H.264 je jedním ze standardů kódování videa pro Blu-ray Disc; všechny přehrávače Blu-ray disků musí umět dekódovat H.264 video. Běžně se také používá pro streamování po internetu, například u videí na službách jako YouTube, Netflix, Vimeo a iTunes Store, webového softwaru jako Adobe Flash Player a Microsoft Silverlight, a také HDTV vysílání, ať už pozemního (DVB-T nebo DVB-T2), kabelového (DVB-C) nebo satelitního (DVB-S2).

Zásadním problémem mnoha formátů kódování videa byly patenty, kvůli nimž bylo drahé je používat, případně hrozil patentový soudní spor kvůli dosud neznámým patentům. Motivací řady v poslední době navržených formátů jako Theora, VP8 a VP9 bylo vytvoření otevřeného formátu pokrytého pouze patenty nezatíženými licenčními poplatky.[8] Stav ohledně patentů byl také velkým předmětem sváru kvůli volbě video formátů, které mají podporovat hlavní webové prohlížeče v prvku HTML5 video.

Mezi nejmodernější formáty kódování videa patří patenty silně zatížený HEVC (H.265) a otevřený, bezplatně licencovaný AV1.

Bezeztrátové, ztrátové a nekomprimované formáty editovat

Video pro běžné uživatele se běžně kóduje ztrátovými video kodeky, protože tak vznikají mnohem menší soubory než u bezeztrátové komprese. Přestože existují formáty určené výhradně pro ztrátovou, nebo bezeztrátovou kompresi, některé formáty jako Dirac a H.264 podporují obojí.

Formáty nekomprimovaného videa, jako je čisté HDMI („Clean HDMI“), jsou formou bezeztrátového videa používaného v některých případech jako je přenos videa na obrazovku přes HDMI. Některé špičkové kamery také mohou zachytávat video přímo v tomto formátu.

Formáty kódování založené na I-snímcích editovat

Podtřídou poměrně jednoduchých formátů kódování videa jsou formáty používající pouze I-snímky, ve kterých lze komprimovat pouze každý obrázek videa zvlášť, přičemž se nevyužívá souvislostí s následujícími snímky pro lepší kompresi. Příkladem je MJPEG, což je sled jednotlivě komprimovaných obrázků podle standardu JPEG. Tento přístup je jednoduchý a rychlý, nevýhodou je mnohem větší video než to, které používá formát podporující P a B-snímky.

Protože mezisnímková komprese přebírá data z jednoho snímku do druhého, pokud je původní snímek vystřižen (nebo ztracen při přenosu), nemohou být následující snímky řádně zrekonstruovány. Střih videa komprimovaného jen pomocí I-snímků je téměř tak snadný jako editace nekomprimovaného videa: určí se úvodní a poslední snímek a jednoduše se bit po bitu zkopíruje každý snímek, který se má uchovat, zatímco nechtěné snímky se zahodí. Dalším rozdílem je, že u komprese pomocí I-snímků má každý snímek podobnou datovou velikost. U většiny mezisnímkových kompresí určité snímky (jako I-snímky v MPEG-2) nemohou přebírat data z jiných snímků, takže vyžadují mnohem více dat než jiné, sousední snímky.[9]

Profily a úrovně editovat

Formát kódování videa může definovat volitelná omezení pro kódované video, nazvaná profily a úrovně. Mohou existovat dekodéry, podporující pouze podmnožinu profilů a úrovní daného video formátu, například proto, aby byl softwarový nebo hardwarový dekodér menší, jednodušší nebo rychlejší.

Profil („profile“) vymezuje, které techniky kódování jsou povoleny. Například formát H.264 obsahuje mimo jiných profily baseline, main a high. Zatímco P-řezy, které lze predikovat podle předchozích řezů, jsou podporovány ve všech profilech (řezy, „slices“, jsou části snímků, řady makrobloků, které jsou kódovány separátně), B-řezy, (které lze predikovat z předchozích i následujících řezů) jsou podporovány v profilech main a high, ne však v profilu baseline.[10]

Úroveň („level“) omezuje parametry jako je maximální rozlišení a datový tok.[10]

Reference editovat

V tomto článku byl použit překlad textu z článku Video coding format na anglické Wikipedii.

  1. S termínem „kódování videa“, anglicky „video coding“, se lze setkat např. v názvech Advanced Video Coding, High Efficiency Video Coding a Video Coding Experts Group
  2. WIEGAND, Thomas; SULLIVAN, Gary J.; BJONTEGAARD, Gisle; LUTHRA, Ajay. Overview of the H.264 / AVC Video Coding Standard. 654lab.webstarts.com [online]. Červenec 2003. Dostupné online. 
  3. a b SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS : Infrastructure of audiovisual services – Coding of moving video : Advanced video coding for generic audiovisual services. www.itu.int [online]. Itu.int [cit. 6.ledna 2015]. Dostupné online. 
  4. Front Page. aomedia.org [online]. Alliance for Open Media [cit. 7.května 2018]. Dostupné online. 
  5. GRANGE, Adrian; DE RIVAZ, Peter; HUNT, Jonathan. VP9 Bitstream & Decoding Process Specification. storage.googleapis.com [online]. Dostupné online. 
  6. shodhganga.inflibnet.ac.in [online]. Shodhganga.inflibnet.ac.in [cit. 6.ledna 2015]. Dostupné online. 
  7. a b c d http://www.real.com/resources/digital-video-file-formats/
  8. https://blogs.cisco.com/collaboration/world-meet-thor-a-project-to-hammer-out-a-royalty-free-video-codec
  9. JAISWAL, R.C. Audio-Video Engineering. Pune, Maharashtra: Nirali Prakashan, 2009. ISBN 9788190639675. S. 3.55. 
  10. a b OZER, Jan. Encoding options for H.264 video. www.adobe.com [online]. Adobe.com [cit. 6.ledna 2015]. Dostupné online. 

Externí odkazy editovat