A tömörített videofolyamban lévő képkockatípusok a következő képkocka információinak kódolására és tárolására szolgáló módszerek , amelyek abban különböznek egymástól, hogy ez a képkocka függ-e az előző és a következő képkockától.
A keret az alapvető kódolási struktúra. A következő paraméterek kapcsolódnak egy kerethez: idő, keret típusa, puffer inicializálási jelzője, mozgásvektorok felbontása és sorrendjük, valamint felhasználói adatok
Általában egy keret négyzet alakú makroblokkra van felosztva , és az egyes makroblokkok hivatkozási típusát egyedileg határozzák meg, de a teljes keret típusától függően:
Az új MPEG-4 AVC/H.264 szabvány az SI és SP keretek fogalmát is bevezeti .
Az I-kockák kódolása a JPEG -kockákhoz hasonlóan történik . Az algoritmus azon változatában, ahol csak I-kockák vannak, a videoszekvencia M-JPEG formátumba konvertálódik . Az I-frame-ek véletlenszerű hozzáférésre használhatók, mivel nem igényelnek további információkat. Az I-kockák tömörítési aránya a legalacsonyabb.
A P-kockákat a múltbeli I és P-kockák segítségével kódolják. Például egy képkocka, amely közvetlenül követ egy I-kockát, az adott I-kockából származó változatlan információt használja fel, és kiegészíti azt a képkockák közötti különbséggel. Ha ezt a P-kockát egy másik P-kocka követi, akkor az átveszi az előző P-kocka változatlan információt (ami viszont a változatlan I-kockát használta), és kiegészíti azt a képkockák közötti különbségével.
A B-kockákat interpolációként használják az előző és a következő I és P típusú képkockák között.
Az MPEG-1 egyedi kerettípussal rendelkezik, amely a későbbi videószabványokban nem található meg. A D-kockákra soha nem hivatkoznak I-, P- vagy B-kockák. A D-kockákat csak gyors videó-előnézethez használják, például amikor gyorsan keres egy kívánt videórészletet.
Valamivel jobb dekódoló hardverrel az előnézeti kép D-kockák helyett I-kockák dekódolásával végezhető. Ez jobb előnézetet biztosít, mivel az I-kockákat kisebb veszteséggel tömörítik. Ha a kódoló feltételezi, hogy az I-kockák gyors dekódolása elérhető a dekódolókban, biteket takaríthat meg azáltal, hogy nem küld D-kockákat (így javítja a videótartalom tömörítését). Emiatt a D-kockákat ritkán használják az MPEG-1 videó kódolásban, és a D-frame funkciót nem foglalták bele a későbbi videókódolási szabványokba.
A képek csoportja (GOP) a legkisebb független kódoló struktúra egy videoszekvenciában. A videoszekvenciához való véletlenszerű hozzáférés egy képkockacsoportig lehetséges. A keretcsoporttal kapcsolatos információk időkódot, zárt jelzőt és felhasználói információkat tartalmaznak.
A GOP struktúrát gyakran két számmal jelölik, például M = 3, N = 12. Az első szám két horgonykeret (I vagy P) közötti távolságot jelöli. A második két teljes kép (I-képkocka) közötti távolságot adja meg: ez a GOP mérete. Például M = 3, N = 12, a GOP struktúra IBBBPBBPBBPBBI. Az M paraméter helyett a maximális számú B-kockát használhatja két egymást követő horgonykép között.
Például az IBBBPBBBBPBBBBBI mintájú sorozatban a GOP mérete ( N érték ) 15 (két I képkocka közötti hossz), és két horgonykeret távolsága ( M érték ) 5 (az I és P képkocka közötti hossz, vagy két egymást követő P képkocka közötti hossz ).
A videofolyam MJPEG és DV kodekjében minden képkocka I-típusú.
A "harmadik verzió" MPEG4 kodekcsaládja (a legnépszerűbb a DivX 3.11 volt, a DivX 4.12 és az OpenDivX is ismert) kétféle kerettel rendelkezik - I és P. B-kockákat nem biztosítanak. Ugyanez a helyzet az On2 kodekcsaládjában : VP3 , VP6 , VP8 .
Ezenkívül számos modern kodek rendelkezik olyan beállításokkal, amelyek kikapcsolják a B-kockák létrehozását, hogy csökkentsék a processzor teljesítményének költségeit a valós idejű feldolgozáshoz.
Az ITU-T VCEG és az ISO / IEC MPEG által elfogadott videotömörítési szabványok általában csak a képkockák közötti különbséget tömörítik. Például egy olyan jelenetben, ahol egy személy álló objektumok hátterében sétál, csak a változó területekre vonatkozó információkat kell menteni (például mozgáskompenzáció használatával , amely elmenti a blokk helyzetének változási vektorát, vagy ha egy hasonló terület nem az előző képkockában található, ez a terület független képként van tömörítve). A jelenet azon részei, amelyek nem változnak, nem kerülnek mentésre az adatfolyamba, ami nagymértékben növeli a tömörítési arányt azokhoz a formátumokhoz képest, amelyek az egyes képkockák független tömörítését használják.
Például az adatfolyamban lévő I- és P-kockák esetében IPPPPPPPPPPPP… láncok jönnek létre , amikor az első keretet egymástól függetlenül tömörítik, és a továbbiak az első keretre hivatkozva. Ez a legegyszerűbb példa a különböző típusú keretek adatfolyamban való használatára.
Míg a P-kockák használatának fő előnye a tömörítési arány növelése, fő hátrányuk a drámai módon megnövekedett képkocka-hozzáférési idő, mivel a legközelebbi I-kockából a teljes képkocka-láncot teljesen ki kell tömöríteni a kívánt képkocka eléréséhez. Különösen, ha a tömörítés olyan paraméterekre van beállítva, amelyek maximalizálják a tömörítési arányt, és így ritkák az I-kockák, akkor az adatfolyamban tetszőleges képkockák megjelenítésének késleltetési ideje nagyon észrevehető lehet.
Az MPEG-2 , MPEG-4 , H.261 , H.263 és H.264 szabványok szerinti videokodekkel tömörített adatfolyamban három fő típusú képkockát használnak : I-frame (az angol Intra képekből ), P -kockák (az előre jelzett képekből ) és B-kockák ( két előrejelző képekből vagy kétirányú képekből ).
A B-kockák használata azt jelenti, hogy egy adott keret két szomszédos I- vagy P-kockára utal a folyamban, ebben az esetben a keretlánc így nézhet ki: IBPBPBPBPBPBPBPBP . A gyakrabban használt láncok az IBBBPBBPBBPBBPBBPBBPBBPBBP, amelyben a B-keretek még mindig a két legközelebbi szomszédos I- vagy P-keretre utalnak, és függetlenek egymástól.
Ez a struktúra lehetővé teszi egy tetszőleges képkocka megszerzésének idejét a folyamban 2-3-szorosára felgyorsítani, mivel ennek megszerzéséhez csak minden második (harmadik) képkockát (ami egy P-kocka ) kell kicsomagolni, kezdve az I-keretből. Ezenkívül a „műsorral előretekerés” sebessége többszörösére nő.
Az Xvid kodek megfelelő beállításokkal lehetővé teszi, hogy 4 vagy több B-kockát kapjunk egymás után. És egy ilyen adatfolyamot önmagában, valamint az ffdshow dekóderrel megfelelően reprodukál . Egyes dekóderek nem képesek egynél több B-kockát helyesen reprodukálni egymás után.[ a tény jelentősége? ]
Tömörítési módszerek | |||||||
---|---|---|---|---|---|---|---|
Elmélet |
| ||||||
Veszteségmentes |
| ||||||
Hang |
| ||||||
Képek |
| ||||||
Videó |
|