MPEG-1 - MPEG-1
Přípona názvu souboru | .dat, .mpg, .mpeg, .mp1, .mp2, .mp3, .m1v, .m1a, .m2a, .mpa, .mpv |
---|---|
Typ internetového média | audio / mpeg, video / mpeg |
Vyvinul | MPEG (část ISO / IEC JTC 1 ) |
První vydání | 1993 |
Typ formátu | audio, video, kontejner |
Rozšířeno z | JPEG, H.261 |
Rozšířeno na | MPEG-2 |
Standard | ISO /IEC 11172 |
MPEG-1 je Standard pro ztrátový komprese video a Zvuk. Je navržen pro kompresi VHS - kvalitní surové digitální video a zvuk CD až na přibližně 1,5 Mbit / s (kompresní poměr 26: 1, respektive 6: 1)[1] bez nadměrné ztráty kvality video CD, digitální kabel /satelit TV a digitální audio vysílání (DAB) možné.[2][3]
MPEG-1 se dnes stal nejrozšířenějším ztrátovým audio / video formátem na světě a používá se v mnoha produktech a technologiích. Snad nejznámější součástí standardu MPEG-1 je první verze MP3 zvukový formát, který zavedl.
Standard MPEG-1 je publikován jako ISO /IEC 11172 - Informační technologie — kódování pohyblivých obrázků a přidruženého zvuku pro digitální paměťová média rychlostí až přibližně 1,5 Mbit / s.
Standard se skládá z následujících pěti Díly:[4][5][6][7][8]
- Systémy (ukládání a synchronizace videa, zvuku a dalších dat dohromady)
- Video (komprimovaný videoobsah)
- Zvuk (komprimovaný zvukový obsah)
- Testování shody (testování správnosti implementace normy)
- Referenční software (příklad softwaru, který ukazuje, jak kódovat a dekódovat podle normy)
Dějiny
Předchůdcem MPEG-1 pro kódování videa byl H.261 standard produkovaný CCITT (nyní známý jako ITU-T ). Základní architektura zavedená v H.261 byla pohybově kompenzováno DCT hybridní struktura kódování videa.[9][10] Využívá to makrobloky velikosti 16 × 16 s blokovou základnou odhad pohybu v kodéru a kompenzace pohybu pomocí zvoleného kodéru pohybové vektory v dekodéru se zbytkovým rozdílovým kódováním pomocí a diskrétní kosinová transformace (DCT) o velikosti 8 × 8, skalární kvantování a kódy s proměnnou délkou (například Huffmanovy kódy ) pro entropické kódování.[11] H.261 byl prvním praktickým standardem kódování videa a všechny jeho popsané konstrukční prvky byly také použity v MPEG-1.[12]
Na základě úspěšného přístupu založeného na spolupráci a kompresních technologií vyvinutých Společná skupina fotografických odborníků a CCITT skupina odborníků na telefonování (tvůrci JPEG standard komprese obrazu a standard H.261 pro video konference ) Skupina odborníků na pohyblivý obraz (MPEG) pracovní skupina byla zřízena v lednu 1988 z iniciativy Hiroši Yasuda (Nippon telegraf a telefon ) a Leonardo Chiariglione (CSELT ).[13] MPEG byl vytvořen s cílem řešit potřebu Standard video a audio formáty a stavět na H.261 pro získání lepší kvality pomocí poněkud složitějších metod kódování (např. podpora vyšší přesnosti pohybových vektorů).[2][14][15]
Vývoj standardu MPEG-1 byl zahájen v květnu 1988. Jednotlivé společnosti a instituce předložily ke zhodnocení čtrnáct návrhů videa a čtrnácti zvukových kodeků. Kodeky byly důkladně testovány výpočetní složitost a subjektivní (vnímaná člověkem) kvalita při rychlostech dat 1,5 Mbit / s. Tento specifický datový tok byl zvolen pro přenos přes T-1 /E-1 řádků a jako přibližná rychlost přenosu dat audio CD.[16] Kodeky, které v tomto testování vynikly, byly použity jako základ pro standard a dále vylepšeny, přičemž do procesu byly začleněny další funkce a další vylepšení.[17]
Po 20 setkáních celé skupiny v různých městech po celém světě a 4½ letech vývoje a testování byl konečný standard (pro části 1–3) schválen počátkem listopadu 1992 a publikován o několik měsíců později.[18] Uváděné datum dokončení standardu MPEG-1 se velmi liší: v září 1990 byl vytvořen převážně kompletní návrh standardu a od tohoto okamžiku byly zavedeny pouze drobné změny.[2] Návrh normy byl veřejně k dispozici ke koupi.[19] Standard byl dokončen 6. listopadu 1992.[20] V listopadu 1992 vyvinula Berkeley Plateau Multimedia Research Group dekodér MPEG-1.[21] V červenci 1990, ještě než byl napsán první návrh standardu MPEG-1, byly zahájeny práce na druhém standardu, MPEG-2,[22] zamýšlel rozšířit technologii MPEG-1 tak, aby poskytoval video v plné kvalitě ve vysílání (podle CCIR 601 ) při vysokých bitrate (3–15 Mbit / s) a podpora pro prokládaný video.[23] Kvůli podobnosti mezi těmito dvěma kodeky standard MPEG-2 zahrnuje plnou zpětnou kompatibilitu s videem MPEG-1, takže jakýkoli dekodér MPEG-2 může přehrávat videa MPEG-1.[24]
Je pozoruhodné, že standard MPEG-1 velmi přísně definuje bitový proud a dekodér, ale nedefinuje, jak má být kódování MPEG-1 prováděno, ačkoli referenční implementace je uvedena v ISO / IEC-11172-5.[1] To znamená, že MPEG-1 účinnost kódování se může drasticky lišit v závislosti na použitém kodéru a obecně znamená, že novější kodéry fungují výrazně lépe než jejich předchůdci.[25] První tři části (systémy, video a zvuk) normy ISO / IEC 11172 byly publikovány v srpnu 1993.[26]
Část | Číslo | Datum prvního veřejného vydání (první vydání) | Poslední oprava | Titul | Popis |
---|---|---|---|---|---|
Část 1 | ISO / IEC 11172-1 | 1993 | 1999[28] | Systémy | |
Část 2 | ISO / IEC 11172-2 | 1993 | 2006[29] | Video | |
Část 3 | ISO / IEC 11172-3 | 1993 | 1996[30] | Zvuk | |
Část 4 | ISO / IEC 11172-4 | 1995 | 2007[31] | Testování shody | |
Část 5 | ISO / IEC TR 11172-5 | 1998 | 2007[32] | Softwarová simulace |
Patenty
Vzhledem ke svému věku již MPEG-1 není chráněn žádnými základními patenty a lze jej tedy používat bez získání licence nebo placení poplatků.[33][34][35][36][37] Databáze patentů ISO uvádí jeden patent na ISO 11172, US 4 472 747, jehož platnost vypršela v roce 2003.[38] Téměř úplná verze standardu MPEG-1 byla veřejně dostupná jako ISO CD 11172[19] do 6. prosince 1991.[39] Ani článek Kuro5hin z července 2008 „Patentový status MPEG-1, H.261 a MPEG-2“,[40] ani vlákno ze srpna 2008 na gstreamer-devel[41] v seznamu adresátů bylo možné vypsat jediný patent MPEG-1 Video a MPEG-1 Audio Layer I / II. Diskuse z května 2009 o seznamu adresátů whatwg zmínila patent USA 5 214 678, který pravděpodobně pokrývá MPEG-1 Audio Layer II.[42] Tento patent, který byl podán v roce 1990 a publikován v roce 1993, nyní vypršel.[43]
Plný dekodér a kodér MPEG-1 se zvukem „Layer III“ nebylo možné implementovat bez licenčních poplatků, protože existovaly společnosti, které požadovaly patentové poplatky za implementaci MPEG-1 Audio Layer III, jak je uvedeno v MP3 článek. Platnost všech patentů na světě připojených k MP3 vypršela 30. prosince 2017, díky čemuž je tento formát zcela zdarma k použití.[Citace je zapotřebí ] 23. dubna 2017 Fraunhofer IIS přestal účtovat licenční program MP3 společnosti Technicolor pro určité patenty a software související s MP3.[44]
Bývalí držitelé patentů
Následující společnosti podaly prohlášení u ISO s tím, že mají patenty na formát MPEG-1 Video (ISO / IEC-11172-2), ačkoli všechny tyto patenty od té doby vypršely.[45]
- BBC
- Daimler Benz AG
- Fujitsu
- IBM
- Matsushita Electric Industrial Co., Ltd.
- Mitsubishi Electric
- NEC
- NHK
- Philips
- Pioneer Corporation
- Qualcomm
- Ricoh
- Sony
- Texas Instruments
- Thomson Multimedia
- Toppan tisk
- Toshiba
- Victor Company of Japan
Aplikace
- Nejoblíbenější software pro přehrávání videa obsahuje kromě dalších podporovaných formátů také dekódování MPEG-1.
- Popularita MP3 audio vytvořil obrovský nainstalovaná základna hardwaru, který dokáže přehrávat zvuk MPEG-1 (všechny tři vrstvy).
- „Prakticky všichni digitální audio zařízení "umí přehrávat zvuk MPEG-1.[46] Dosud bylo prodáno mnoho milionů.
- Před MPEG-2 rozšířilo se, mnoho služeb digitální satelitní / kabelové televize používalo výhradně MPEG-1.[15][25]
- Široká popularita MPEG-2 u vysílacích společností znamená, že MPEG-1 lze přehrávat většinou digitálních kabelů a satelitů set-top boxy a přehrávače digitálních disků a pásek kvůli zpětné kompatibilitě.
- MPEG-1 byl použit pro video na celou obrazovku Zelená kniha CD-i a dále Video CD (VCD).
- The Super Video CD standard, založený na VCD, používá výhradně zvuk MPEG-1 a také video MPEG-2.
- The DVD-Video formát používá primárně video MPEG-2, ale podpora MPEG-1 je ve standardu výslovně definována.
- Standard DVD-Video původně vyžadoval MPEG-1 Audio Layer II pro země PAL, ale byl změněn, aby umožňoval AC-3 /Dolby digital - pouze disky. MPEG-1 Audio Layer II je stále povolen na DVD, i když novější rozšíření formátu, jako Vícekanálový MPEG, jsou zřídka podporovány.
- Většina přehrávačů DVD podporuje také disky Video CD a MP3 CD přehrávání, které používají MPEG-1.
- Mezinárodní Digitální video vysílání Standard (DVB) primárně používá MPEG-1 Audio Layer II a MPEG-2 video.
- Mezinárodní Digitální audio vysílání Standard (DAB) používá výhradně MPEG-1 Audio Layer II kvůli jeho obzvláště vysoké kvalitě, skromným požadavkům na výkon dekodéru a toleranci chyb.
- The Digitální kompaktní kazeta používá ke kódování zvuku PASC (Precision Adaptive Sub-band Coding). PASC je raná verze zvukové vrstvy MPEG-1 I s pevnou bitovou rychlostí 384 kilobitů za sekundu.
Část 1: Systémy
Část 1 standardních krytů MPEG-1 systémy, a je definována v ISO / IEC-11172-1.
Systémy MPEG-1 specifikují logické rozložení a metody používané k ukládání kódovaných zvukových, obrazových a dalších dat do standardního bitového toku a k udržování synchronizace mezi různými obsahy. Tento formát souboru je speciálně navržen pro ukládání na média a pro přenos komunikační kanály, které jsou považovány za relativně spolehlivé. Norma definuje pouze omezenou ochranu před chybami a malé chyby v bitovém proudu mohou způsobit znatelné vady.
Tato struktura byla později pojmenována Stream programu MPEG: „Návrh systémů MPEG-1 je v podstatě totožný se strukturou programového proudu MPEG-2.“[47] Tato terminologie je populárnější, přesnější (odlišuje ji od MPEG transportní proud ) a budou zde použity.
Základní streamy, pakety a reference hodin
- Elementární streamy (ES) jsou surové bitové toky zvukových a obrazových dat kódovaných ve formátu MPEG-1 (výstup z kodéru). Tyto soubory lze distribuovat samostatně, jako je tomu v případě souborů MP3.
- Paketizované základní proudy (PES) jsou základní proudy zabaleno do paketů proměnných délek, tj. rozdělených ES na nezávislé bloky, kde kontrola cyklické redundance (CRC) kontrolní součet byl přidán do každého paketu pro detekci chyb.
- System Clock Reference (SCR) je hodnota časování uložená v 33bitové hlavičce každého PES, na frekvenci / přesnost 90 kHz, s extra 9bitovou příponou, která ukládá další časovací data s přesností 27 MHz.[48][49] Ty jsou vloženy kodérem, odvozeným od systémových hodin (STC). Současně kódované zvukové a obrazové toky nebudou mít stejné hodnoty SCR, nicméně kvůli vyrovnávací paměti, kódování, chvění a dalším zpožděním.
Programové toky
Programové toky (PS) se zabývají kombinací více paketovaných elementárních streamů (obvykle jen jednoho audio a video PES) do jednoho proudu, zajišťováním simultánního doručování a udržováním synchronizace. Struktura PS je známá jako multiplex nebo formát kontejneru.
Prezentační časová razítka (PTS) existují v PS k opravě nevyhnutelné nerovnosti mezi audio a video SCR hodnotami (korekce časové základny). Hodnoty PTS 90 kHz v záhlaví PS říkají dekodéru, které hodnoty SCR videa odpovídají těm hodnotám zvuku SCR.[48] PTS určuje, kdy se má zobrazit část MPEG programu, a také se používá v dekodéru k určení, kdy lze data zahodit z nárazník.[50] Video nebo audio bude dekodér zpožděno, dokud nepřijde odpovídající segment druhého a nebude možné je dekódovat.
Manipulace s PTS může být problematická. Dekodéry musí přijmout více proudy programu které byly zřetězeny (připojeny postupně). To způsobí, že se hodnoty PTS uprostřed videa resetují na nulu, které se pak začnou znovu zvyšovat. Takové oboustranné rozdíly PTS mohou způsobit problémy s časováním, které musí dekodér speciálně zpracovat.
Dekódování časových značek (DTS) jsou navíc vyžadovány z důvodu B-snímků. U B-snímků ve video streamu musí být sousední snímky kódovány a dekódovány mimo pořadí (přeuspořádané snímky). DTS je docela podobný PTS, ale namísto pouhé manipulace se sekvenčními snímky obsahuje správná časová razítka, která dekodéru řeknou, kdy má dekódovat a zobrazit další B-snímek (typy snímků vysvětlených níže), před jeho kotvou (P - nebo I-) rám. Bez B-snímků ve videu jsou hodnoty PTS a DTS identické.[51]
Multiplexování
Aby se generoval PS, multiplexer proloží (dva nebo více) paketizovaných elementárních proudů. To se provádí tak, že pakety simultánních proudů lze přenášet přes stejný kanál a je zaručeno, že oba dorazí k dekodéru přesně ve stejnou dobu. Toto je případ multiplexování s časovým dělením.
Určení toho, kolik dat z každého proudu by mělo být v každém prokládaném segmentu (velikost prokládaného), je komplikované, přesto je to důležitý požadavek. Nesprávné prokládání bude mít za následek podtečení nebo přetečení vyrovnávací paměti, protože přijímač získá více než jeden stream, který dokáže uložit (např. Zvuk), než získá dostatek dat k dekódování druhého simultánního proudu (např. Videa). MPEG Ověřovač ukládání videa do vyrovnávací paměti (VBV) pomáhá při určování, zda může být multiplexovaný PS dekódován zařízením se specifikovanou propustností dat a velikostí vyrovnávací paměti.[52] To nabízí zpětnou vazbu pro muxer a kodér, aby mohli podle potřeby změnit velikost muxu nebo upravit bitové rychlosti.
Část 2: Video
Část 2 standardu MPEG-1 pokrývá video a je definována v ISO / IEC-11172-2. Design byl silně ovlivněn H.261.
MPEG-1 Video využívá metody percepční komprese k podstatnému snížení datové rychlosti požadované video streamem. Snižuje nebo zcela odstraňuje informace na určitých frekvencích a oblastech obrazu, které má lidské oko omezenou schopnost plně vnímat. Využívá také časovou (v čase) a prostorovou (na obrázku) redundanci běžnou ve videu k dosažení lepší komprese dat, než by bylo možné jinak. (Vidět: Video komprese )
Barevný prostor
Před kódováním videa do MPEG-1 je barevný prostor transformován na Y'CbCr (Y '= Luma, Cb = Chroma Blue, Cr = Chroma Red). Luma (jas, rozlišení) jsou uloženy odděleně od sytost (barva, odstín, fáze) a ještě dále se dělí na červenou a modrou složku.
Chroma je také podvzorkována 4:2:0, což znamená, že je sníženo na poloviční rozlišení svisle a poloviční rozlišení vodorovně, tj. na pouhou čtvrtinu počtu vzorků použitých pro lumovou složku videa.[1] Toto použití vyššího rozlišení u některých barevných složek je koncepčně podobné konceptu Filtr Bayerova vzoru který se běžně používá pro snímač snímání obrazu v digitálních barevných fotoaparátech. Protože lidské oko je mnohem citlivější na malé změny jasu (složka Y) než barvy (složky Cr a Cb), podvzorkování chroma je velmi efektivní způsob, jak snížit množství video dat, která je třeba komprimovat. U videí s jemnými detaily (vysoké prostorová složitost ) to se může projevit jako chroma aliasing artefakty. Ve srovnání s jinými digitálními kompresní artefakty, zdá se, že tato otázka je velmi zřídka zdrojem obtěžování. Kvůli převzorkování je video Y'CbCr 4: 2: 0 obvykle uloženo pomocí sudých rozměrů (dělitelný o 2 vodorovně a svisle).
Barva Y′CbCr se často neformálně nazývá YUV ke zjednodušení zápisu, i když se tento výraz přesněji vztahuje na poněkud odlišný barevný formát. Podobně i podmínky jas a chrominancí se často používají místo (přesnějších) termínů luma a chroma.
Rozlišení / bitrate
MPEG-1 podporuje rozlišení až 4095 × 4095 (12 bitů) a přenosové rychlosti až 100 Mbit / s.[15]
Videa MPEG-1 se nejčastěji zobrazují pomocí Zdrojový vstupní formát (SIF) rozlišení: 352 × 240, 352 × 288 nebo 320 × 240. Tato relativně nízká rozlišení v kombinaci s přenosovou rychlostí menší než 1,5 Mbit / s tvoří to, co je známé jako omezené parametry bitstream (CPB), později přejmenovaný na „Low Level“ (LL) profil v MPEG-2. Toto je minimální specifikace videa dekodér by měl být schopen zpracovat, aby byl považován za MPEG-1 v souladu. To bylo vybráno, aby poskytlo dobrou rovnováhu mezi kvalitou a výkonem, což umožnilo použití rozumně levného hardwaru té doby.[2][15]
Typy rámů / obrázků / bloků
MPEG-1 má několik typů snímků / obrázků, které slouží různým účelům. Nejdůležitější, přesto nejjednodušší, je I-snímek.
I-snímky
„I-frame“ je zkratka pro „V rámci snímku ", tzv. proto, že je lze dekódovat nezávisle na jakýchkoli jiných rámcích. Mohou být také známé jako I-obrázky nebo klíčové snímky kvůli své poněkud podobné funkci jako klíčové rámečky používá se v animaci. I-snímky lze považovat za skutečně identické se základní linií JPEG snímky.[15]
Vysokorychlostní vyhledávání prostřednictvím videa MPEG-1 je možné pouze k nejbližšímu I-snímku. Při stříhání videa není možné spustit přehrávání segmentu videa před prvním I-snímkem v segmentu (alespoň ne bez výpočetně náročného překódování). Z tohoto důvodu se v editačních aplikacích používají videa MPEG pouze s I-snímkem.
Komprese pouze I-snímků je velmi rychlá, ale vytváří velmi velké velikosti souborů: faktor 3 × (nebo více) větší než obvykle kódované video MPEG-1, v závislosti na tom, jak časově složité je konkrétní video.[2] Pouze MPEG-1 video s I-snímkem je velmi podobné MJPEG video. A to natolik, že lze provést velmi rychlou a teoreticky bezztrátovou (ve skutečnosti jsou chyby zaokrouhlování) převodu z jednoho formátu do druhého za předpokladu, že při tvorbě bude dodrženo několik omezení (barevný prostor a kvantovací matice). bitový proud.[53]
Délka mezi I-snímky je známá jako skupina obrázků (GOP) velikost. MPEG-1 nejčastěji používá velikost GOP 15-18. tj. 1 I-snímek na každých 14-17 non-I-snímků (nějaká kombinace P- a B- snímků). U inteligentnějších kodérů se velikost GOP vybírá dynamicky, až do předem zvoleného maximálního limitu.[15]
Limity jsou kladeny na maximální počet rámců mezi I-snímky kvůli dekódování komplexu, velikosti vyrovnávací paměti dekodéru, době zotavení po chybách dat, schopnosti hledání a hromadění chyb IDCT v implementacích s nízkou přesností, které jsou v hardwarových dekodérech nejběžnější (viz IEEE -1180).
P-snímky
„P-snímek“ je zkratka pro „předpovězený snímek“. Mohou být také nazývány dopředu predikované snímky nebo mezisnímky (B-snímky jsou také mezisnímky).
Existují P-snímky, které zlepšují kompresi využitím temporální (přesčas) nadbytek ve videu. P-snímky ukládají pouze rozdíl v obraze z rámečku (buď I-rámeček nebo P-rámeček) bezprostředně před ním (tento referenční rámeček se také nazývá Kotva rám).
Rozdíl mezi P-rámem a jeho kotevním rámem se vypočítá pomocí pohybové vektory na každém makroblok rámu (viz níže). Taková pohybová vektorová data budou vložena do P-snímku pro použití dekodérem.
P-rámec může obsahovat libovolný počet intra-kódovaných bloků, kromě jakýchkoli dopředu predikovaných bloků.[54]
Pokud se video drasticky mění z jednoho snímku na další (například a střih ), je efektivnější jej kódovat jako I-snímek.
B-snímky
„B-snímek“ znamená „obousměrný snímek“ nebo „biprediktivní snímek“. Mohou být také známé jako zpětně předpovězené snímky nebo B-obrázky. B-snímky jsou docela podobné P-snímkům, až na to, že mohou předpovídat pomocí předchozího i budoucího snímku (tj. Dva kotevní snímky).
Je proto nutné, aby hráč nejprve dekódoval další I- nebo P- kotevní snímek postupně za B-snímek, než bude možné B-snímek dekódovat a zobrazit. To znamená, že dekódování B-snímků vyžaduje větší datové vyrovnávací paměti a způsobí zvýšené zpoždění jak při dekódování, tak během kódování. To také vyžaduje funkci dekódování časových značek (DTS) v proudu kontejner / systém (viz výše). B-snímky jako takové jsou již dlouho předmětem mnoha kontroverzí, ve videích se jim často vyhýbáme a někdy nejsou plně podporovány hardwarovými dekodéry.
Z B-snímku se nepředpovídají žádné další snímky. Z tohoto důvodu lze v případě potřeby vložit rám B s velmi nízkou přenosovou rychlostí, který pomůže řídit přenosovou rychlost. Pokud by to bylo provedeno s P-snímkem, z něj by se předpovídaly budoucí P-snímky a snížilo by to kvalitu celé sekvence. Podobně však budoucí P-snímek musí stále kódovat všechny změny mezi ním a předchozím I-nebo P-kotevním rámem. B-snímky mohou být také užitečné ve videích, kde je pozadí za objektem odhaleno na několika snímcích, nebo při slábnoucích přechodech, jako jsou změny scény.[2][15]
B-snímek může obsahovat libovolný počet intra-kódovaných bloků a dopředu predikovaných bloků, kromě zpětně předpovídaných nebo obousměrně předpovídaných bloků.[15][54]
D-snímky
MPEG-1 má jedinečný typ rámce, který nebyl nalezen v pozdějších video standardech. „D-snímky“ nebo DC-obrázky jsou nezávisle kódované obrazy (intra-snímky), které byly kódovány pouze pomocí DC transformačních koeficientů (AC koeficienty jsou odstraněny při kódování D-snímků - viz DCT níže), a proto mají velmi nízkou kvalitu. Na D-snímky nikdy neodkazují I-, P- nebo B- snímky. D-snímky se používají pouze pro rychlé náhledy videa, například při prohledávání videa vysokou rychlostí.[2]
Vzhledem k mírně výkonnějšímu dekódovacímu zařízení lze rychlého náhledu dosáhnout dekódováním I-snímků namísto D-snímků. To poskytuje náhledy vyšší kvality, protože I-snímky obsahují AC koeficienty i DC koeficienty. Pokud kodér může předpokládat, že v dekodérech je k dispozici schopnost rychlého dekódování I-snímků, může ušetřit bity tím, že nebude odesílat D-snímky (čímž se zlepší komprese video obsahu). Z tohoto důvodu se D-snímky zřídka skutečně používají v kódování videa MPEG-1 a funkce D-snímků nebyla zahrnuta do žádných pozdějších standardů pro kódování videa.
Makrobloky
MPEG-1 pracuje na videu v sérii 8 × 8 bloků pro kvantizaci. Aby se však snížila bitová rychlost potřebná pro pohybové vektory a protože je chroma (barva) převzorkována faktorem 4, odpovídá každá dvojice (červených a modrých) chroma bloků 4 různým luma blokům. Tato sada 6 bloků s rozlišením 16 × 16 je zpracována společně a nazývá se a makroblok.
Makroblok je nejmenší nezávislá jednotka (barevného) videa. Pohybové vektory (viz níže) fungují pouze na úrovni makrobloku.
Pokud výška nebo šířka videa nejsou přesné násobky 16, celé řádky a plné sloupce makrobloků musí být stále zakódovány a dekódovány, aby vyplnily obrázek (ačkoli extra dekódované pixely se nezobrazí).
Pohybové vektory
Chcete-li snížit míru dočasné redundance ve videu, aktualizují se pouze bloky, které se mění (až do maximální velikosti GOP). Toto se nazývá podmíněné doplňování. To však samo o sobě není příliš efektivní. Pohyb objektů nebo kamery může mít za následek aktualizaci velkých částí rámečku, i když se změnila pouze poloha dříve zakódovaných objektů. Pomocí odhadu pohybu může kodér tento pohyb kompenzovat a odstranit velké množství nadbytečných informací.
Kodér porovnává aktuální snímek s přilehlými částmi videa z kotevního snímku (předchozí snímek I nebo P) v kosočtvercovém vzoru, a to až do předdefinovaného (specifického pro kodér) poloměr limit z oblasti aktuálního makrobloku. Pokud je nalezena shoda, pouze směr a vzdálenost (tj vektor z pohyb) z předchozí oblasti videa do aktuálního makrobloku je třeba zakódovat do mezisnímku (P- nebo B- snímek). Nazývá se zadní strana tohoto procesu, kterou provádí dekodér k rekonstrukci obrazu kompenzace pohybu.
Předpovězený makroblok se však zřídka dokonale shoduje s aktuálním obrázkem. Rozdíly mezi odhadovanou shodnou oblastí a skutečným rámcem / makroblokem se nazývají chyba predikce. Čím větší je množství predikční chyby, tím více dat musí být dodatečně zakódováno v rámci. Pro efektivní kompresi videa je velmi důležité, aby kodér byl schopen efektivně a přesně provádět odhad pohybu.
Pohybové vektory zaznamenávají vzdálenost mezi dvěma oblastmi na obrazovce na základě počtu pixelů (nazývaných také pixely). Video MPEG-1 využívá přesnost pohybového vektoru (MV) jedné poloviny jednoho pixelu nebo poloviční polohy. Čím přesnější je přesnost MV, tím přesnější bude pravděpodobně shoda a tím efektivnější bude komprese. Existují však kompromisy s vyšší přesností. Výsledkem jemnější přesnosti MV je použití většího množství dat k reprezentaci MV, protože pro každý jednotlivý MV musí být v rámci uloženy větší počty, zvýšená složitost kódování, protože u kodéru i dekodéru je vyžadována rostoucí úroveň interpolace na makrobloku, a klesající výnosy (minimální zisky) s vyšší přesností MV. Jako ideální kompromis pro daný okamžik byla zvolena přesnost na půl míle. (Vidět: qpel )
Protože sousední makrobloky pravděpodobně budou mít velmi podobné vektory pohybu, lze tuto nadbytečnou informaci poměrně efektivně komprimovat uložením DPCM -kódováno. V konečném bitstreamu musí být uloženo pouze (menší) množství rozdílu mezi MV pro každý makroblok.
P-snímky mají jeden pohybový vektor na každý makroblok, relativně k předchozímu kotevnímu rámci. B-snímky však mohou používat dva vektory pohybu; jeden z předchozího kotevního rámu a jeden z budoucího kotevního rámu.[54]
Částečné makrobloky a černé okraje / pruhy zakódované do videa, které nespadají přesně na hranici makrobloku, způsobí zmatek s predikcí pohybu. Informace o polstrování / ohraničení bloku brání makrobloku v těsné shodě s jakoukoli jinou oblastí videa, a proto musí být pro každou z několika desítek částečných makrobloků podél okraje obrazovky zakódovány podstatně větší informace o chybě predikce. DCT kódování a kvantování (viz níže) také není zdaleka tak efektivní, když je v bloku velký / ostrý kontrast obrazu.
Ještě závažnější problém existuje s makrobloky, které obsahují významné, náhodné hluk hrany, kde obrázek přechází do (obvykle) černé. Všechny výše uvedené problémy se vztahují také na hluk hran. Navíc přidanou náhodnost je jednoduše nemožné výrazně komprimovat. Všechny tyto efekty podstatně sníží kvalitu (nebo zvýší datový tok) videa.
DCT
Každý blok 8 × 8 je kódován první aplikací a vpřed diskrétní kosinová transformace (FDCT) a poté kvantizační proces. Proces FDCT (sám o sobě) je teoreticky bezztrátový a lze jej zvrátit použitím Inverzní DCT (IDCT ) reprodukovat původní hodnoty (při absenci jakýchkoli chyb při kvantování a zaokrouhlování). Ve skutečnosti existují některé (někdy velké) chyby zaokrouhlování zavedené jak kvantováním v kodéru (jak je popsáno v následující části), tak chybou aproximace IDCT v dekodéru. Minimální povolená přesnost aproximace IDCT dekodéru je definována normou ISO / IEC 23002-1. (Před rokem 2006 to bylo specifikováno IEEE 1180 -1990.)
Proces FDCT převádí blok 8 × 8 nekomprimovaných hodnot pixelů (hodnoty jasu nebo barevného rozdílu) na indexované pole 8 × 8 frekvenční koeficient hodnoty. Jedním z nich je (statisticky vysoký rozptyl) „DC koeficient“, který představuje průměrnou hodnotu celého bloku 8 × 8. Dalších 63 koeficientů jsou statisticky menší „AC koeficienty“, které mají kladné nebo záporné hodnoty, z nichž každý představuje sinusové odchylky od hodnoty plochého bloku představované DC koeficientem.
Příklad kódovaného bloku 8 × 8 FDCT: