A H.265 vagy HEVC ( High Efficiency Video Coding ) egy videó tömörítési formátum , amely a H.264/MPEG-4 AVC- hez képest hatékonyabb algoritmusokat használ [ 1] . A CCITT H.265 ajánlás , valamint az ISO/IEC 23008-2 MPEG-H 2. rész a CCITT Video Coding Experts Group (VCEG) és az MPEG Moving Picture Expert Group [2] közös fejlesztése . A szabvány ajánlását a mozgóképek nagyobb tömörítése iránti növekvő igényre válaszul dolgozták ki számos alkalmazáshoz, mint például az internetes streaming, adatátvitel, videokonferencia, digitális tárolóeszközök és televíziós műsorszórás [3] .
A legfeljebb 8K ( UHDTV ) keretformátumok 8192×4320 pixel [4] felbontásig támogatottak .
2004- ben a VCEG kutatásokat kezdett olyan technológiák kifejlesztésére, amelyek lehetővé teszik egy új videotömörítési szabvány létrehozását (vagy a H.264/MPEG-4 AVC szabvány jelentős továbbfejlesztését). 2004 októberében felülvizsgálták a H.264/MPEG-4 AVC fejlesztésének különféle módjait [5] .
A H.265 eredetileg egy teljesen új szabvány volt, nem pedig a H.264 kiterjesztése, mint a HVC (High-performance Video Coding). A projekt részeként az ideiglenes nevek H.265 és H.NGVC kerültek hozzárendelésre ( angolul Next-generation Video Coding - a videokódolás következő generációja), a VCEG munkájának jelentős része volt még a HEVC-vé való fejlődés előtt. , közös projekt az MPEG-gel 2010-ben. 2009 áprilisában a projekt az NGVC nevet kapta; 2009 júliusában találkozóra került sor az MPEG és a VCEG között, ahol megvitatták az NGVC és a HVC további közös munkáját.
Az NGVC előfeltétele a bitráta 50%-os csökkenése , hasonló szubjektív képminőséggel és a H.264 High profile-hoz hasonló számítási bonyolultsággal. A beállításoktól függően a számítási bonyolultság várhatóan 1/2 és 3 között változik a H.264 High profile-hoz képest, míg az első esetben az NGVC-nek 25%-kal alacsonyabb bitrátát kell biztosítania [6] .
Az ISO/IEC Moving Picture Experts Group (MPEG) 2007 -ben elindított egy hasonló projektet , amelyet előzetesen High-performance Video Codingnak hívnak. 2007 júliusában a projekt céljaként döntés született a bitráta 50%-os csökkentéséről [7] . 2009 júliusára a kísérlet eredményei átlagosan körülbelül 20%-os bitráta-csökkenést mutattak az AVC High Profile-hoz képest, ezek az eredmények arra késztették az MPEG-t, hogy megkezdje a szabványosítást a VCEG-gel együttműködve.
Az MPEG és VCEG szabvány kifejlesztésére létrehozták a Joint Collaborative Team on Video Coding (JCT-VC) nevű szervezetet (ITU-T Rec H.264|ISO/IEC 14496-10) [8] . A Joint Video Coding Team (JCT-VC) első találkozójára 2010 áprilisában került sor . 27 teljes értékű projektet mutattak be. Az értékelések azt mutatták, hogy egyes javaslatok az AVC-vel azonos képminőséget képesek elérni, sok kísérletben csak a fele bitrátával, 2-10-szer nagyobb számítási bonyolultsággal, és egyes tervek jó szubjektív minőséget és jó bitsebességű eredményeket értek el alacsonyabb számítási bonyolultsággal, mint magas profilú AVC referenciakódolás. Ezen az ülésen elfogadták a közös projekt elnevezését – High Efficiency Video Coding (HEVC) [9] .
A HEVC Projekt Bizottságot 2012 februárjában hagyták jóvá . 2012 júniusában az MPEG LA bejelentette, hogy megkezdte a HEVC szabadalmakra vonatkozó közös licencek elfogadásának folyamatát. A nemzetközi szabványtervezetet 2012 júliusában egy stockholmi ülésen hagyták jóvá. Fröjdh, a svéd MPEG delegáció elnöke úgy véli, hogy a HEVC-t támogató kereskedelmi termékek 2013-ban megjelenhetnek [10] .
2012. február 29-én a Mobile World Congressen a Qualcomm bemutatott egy HEVC dekódert, amely egy androidos táblagépen fut, Qualcomm Snapdragon S4 kétmagos, 1,5 GHz-es processzorral. A videó két változatát mutatták be azonos tartalommal, H.264/MPEG-4 AVC és HEVC formátumban. Ebben a műsorban a HEVC csaknem 50%-kal csökkentette a bitsebességet a H.264/MPEG-4 AVC-hez képest [11] .
2012. augusztus 31-én az Allegro DVT bejelentette két HEVC adáskódoló kiadását: az AL1200 HD-SDI kódolót és az AL2200 IP átkódolót [12] . Az Allegro DVT kijelentette, hogy HEVC hardveres dekóderekre csak 2014-ig kell számítani, de a HEVC már korábban is használható lesz a szoftveres dekódolású alkalmazásokban. A 2012-es IBC kiállításon az Allegro DVT bemutatta az AL2200 IP átkódolón alapuló HEVC IP streaming rendszereket.
Az Ericsson 2012 szeptemberében a Nemzetközi Műsorszórási Konvención (IBC) bemutatta a világ első HEVC-kódolóját - az Ericsson SVP 5500-at, amelyet valós idejű videó kódolására terveztek földfelszíni televíziózás mobilhálózatokban történő sugárzására [13] .
2013 áprilisában a tervezetet ITU-T szabványként fogadták el [3] .
2017 elején a HEVC szabvány részleges támogatását hardver szinten minden nagyobb processzorgyártó bevezette.
Számos új funkciót javasoltak a szabvány követelményeiként:
Feltételezhető, hogy ezek a technikák a többmenetes kódolásban hozzák a legnagyobb előnyt [14] .
A legtöbb videó kódolási szabvány fejlesztése elsősorban a legnagyobb kódolási hatékonyság elérésére irányul. A kódolási hatékonyságot úgy definiálják, mint a videó kódolásának képességét a lehető legalacsonyabb bitsebességgel , miközben a videó minősége bizonyos szinten megmarad . A videó kódolási teljesítményének mérésére két szabványos módszer létezik: az egyik objektív mérőszám, például csúcsjel -zaj viszony (PSNR), a másik pedig a videóminőség szubjektív mérőszáma. A képminőség szubjektív értékelése a videokódolás értékelésének legfontosabb paramétere, mivel a nézők szubjektív módon érzékelik a videó minőségét.
A H.264-ben használt makroblokkok helyett a HEVC fa-szerű kódszerkezetű blokkokat használ. A HEVC kódoló előnye a nagyobb blokkok használata. Ezt mutatták ki a HM-8.0 kódoló modellel végzett PSNR tesztek, ahol a kódolási eredményeket különböző blokkméretekkel hasonlították össze. A tesztek eredményeként kimutatták, hogy a 64×64 pixeles kódolási blokkokhoz képest a bitsebesség 2,2%-kal növekszik 32×32-es blokkok használatakor, és 11,0%-kal nő, ha 16×16-os blokkokat használunk. . A 2560x1600 pixeles felbontású videókódolás tesztjeiben 32x32 pixeles blokkok használatakor a bitsebesség 5,7%-kal, 16x16 pixeles blokkok használatakor pedig 28,2%-kal nő a 64 × 64 méretű blokkokat tartalmazó videóhoz képest. ugyanaz a csúcs jel-zaj arány. A tesztek kimutatták, hogy a nagyobb blokkok használata hatékonyabb nagy felbontású videó kódolásakor. A tesztek azt is kimutatták, hogy a 16x16-os blokkokkal kódolt videó dekódolása 60%-kal több időt vesz igénybe, mint 64x64-es blokkokkal. Azaz a nagyobb blokkok használata növeli a kódolás hatékonyságát, miközben csökkenti a dekódolási időt [15] .
A H.265 fő profil kódolási hatékonyságát összehasonlították a H.264/MPEG-4 AVC High Profile (HP), az MPEG-4 Advanced Simple Profile (ASP), a H.263 High Profile Latency (HLP) és a H.262/ MPEG-2 fő profil (MP). A szórakoztató videók és kilenc tesztvideó szekvencia 12 különböző bitsebességgel a HEVC HM-8.0 tesztmodell segítségével lett kódolva, ezek közül öt HD felbontású, négy pedig WVGA (800×480) felbontású. A bitsebesség csökkentését a PSNR alapján határoztuk meg [15] .
Videókódolási szabvány | Átlagos bitsebesség csökkenés | |||
---|---|---|---|---|
H.264/MPEG-4 AVC HP | MPEG-4 ASP | H.263 HLP | H.262/MPEG-2MP | |
HEVC képviselő | 35,4% | 63,7% | 65,1% | 70,8% |
H.264/MPEG-4 AVC HP | - | 44,5% | 46,6% | 55,4% |
MPEG-4 ASP | - | - | 3,9% | 19,7% |
H.263 HLP | - | - | - | 16,2% |
A videó HEVC-ben történő kódolásakor ugyanazt a „hibrid” megközelítést alkalmazzák, mint minden modern kodekben, kezdve a H.261-gyel. Ez az intra- és inter-frame (Intra-/Inter-) predikció és a kétdimenziós transzformációs kódolás alkalmazásából áll.
A HEVC kódolóban minden videokocka blokkra van osztva. A videoszekvencia első képkockája csak kereten belüli predikcióval van kódolva, vagyis a kereten belüli várható mintaszint térbeli előrejelzését alkalmazzuk a szomszédos mintákra, miközben nincs függés a többi képkockától. A sorozat összes többi képkockájának legtöbb blokkjához általában a keretek közötti időbeli előrejelzés módját használják. A keretközi predikciós módban a referenciakeret mintáinak és a mozgásvektornak az értékére vonatkozó adatok alapján megbecsülik az egyes blokkok aktuális mintáit. A kódoló és a dekódoló azonos képkockák közötti előrejelzéseket hoz létre egy mozgáskompenzációs algoritmus alkalmazásával, mozgásvektorok és kiválasztott üzemmódadatok felhasználásával, amelyeket mellékinformációként továbbítanak.
A predikciós különbségjel, amely a keret referenciablokkja és a predikciója közötti különbség, lineáris térbeli transzformáción megy keresztül. A transzformációs együtthatókat ezután skálázzák, kvantálják, entrópiakódolást alkalmaznak, majd az előrejelzési információval együtt továbbítják.
A kódoló pontosan megismétli a dekódoló feldolgozási ciklusát, így mindkét esetben azonos előrejelzések jönnek létre a következő adatokra vonatkozóan. Így a transzformált kvantált együtthatókat skálázzuk, majd detranszformáljuk, hogy megismételjük a dekódolt különbségjel értékét. A különbség ezután hozzáadódik az előrejelzéshez, és a kapott eredményt kiszűri a blokkoló és kvantálási műtermékek kisimítása érdekében. A végső képkockaábrázolás (azonos a dekódoló kimenetén lévő kerettel) a dekódolt keretpufferben kerül tárolásra, amelyet a következő képkockák előrejelzésére használunk fel. Ennek eredményeként a feldolgozási keretek kódolási és dekódolási sorrendje gyakran eltér attól a sorrendtől, amelyben a forrásból származnak.
Feltételezzük, hogy a HEVC kódoló bemenetén lévő videoanyag progresszív letapogatás. A HEVC nem biztosít explicit váltottsoros kódolási funkciókat, mivel a modern kijelzőkben nem használják, és eloszlása is csökken. A HEVC azonban metaadatokat vezetett be, hogy jelezze a kódolónak, hogy a váltottsoros videó két mód egyikében van kódolva: különálló képekként, két mezőként (a képkocka páros vagy páratlan sorai), vagy a teljes képkocka egészeként. Ez a hatékony módszer váltottsoros videókódolást biztosít anélkül, hogy a dekódolókat dedikált dekódolási folyamattal kellene terhelnie.
2012 októberében a projekt három profilt tartalmazott: fő (fő), 10 fő (10 fő) és fő állókép (fő állókép) [16] .
A profil olyan kódoló eszközök és algoritmusok meghatározott halmaza, amelyek segítségével ennek a profilnak megfelelő videofolyamot lehet létrehozni [15] . A kódoló a videó folyam létrehozásakor határozza meg, hogy egy profilhoz mely komponensek használhatók, míg a dekódernek támogatnia kell az adott profil összes funkcióját.
A fő profilra vonatkozóan a következő korlátozások vannak meghatározva:
A Main 10 a videó kódolására szolgáló profil csatornánként 10 bites színmélységgel [16] .
A kódolók fő elemeinek összehasonlítása:
AVC (High Profile) | HEVC (10. fő) | HEVC (fő profil) | |
---|---|---|---|
Blokkméret | Makroblokk 16×16 | 64x64-től 8x8-ig terjedő kódolású fastruktúrájú blokkok | 64×64-től 16×16-ig |
Predikciós blokkok | Osztva akár 4×4-re | 64×64-től 4×4-ig, aszimmetrikus előrejelzés | 64×64-től 8×8-ig, szimmetrikus előrejelzés |
Transform Blocks | 8×8 és 4×4 | 32x32 16x16 8x8 4x4 + nem négyzet alakú transzformációk | 32×32 16×16 8×8 4×4 |
Képkockán belüli előrejelzés | 9 mód | 35 mód | 35 mód |
Fordított transzformáció | Deblocking szűrő | Deblocking szűrő, SAO | Deblocking szűrő, SAO |
Mozgáskompenzáció | Mozgásvektor előrejelzés | Speciális mozgásvektor előrejelzés (térbeli és időbeli) | |
Színmélység csatornánként | 8 bites | 10 bites | 8 bites |
Entrópia kódolás | CABAC vagy CAVLC | CABAC párhuzamos műveletekkel |
Az állóképek fő profilja lehetővé teszi egyetlen kép kódolását, bizonyos, a fő profilnak megfelelő korlátozások mellett [16] .
2012 októberében a HEVC projekt két réteget határozott meg - Main (Main) és High (High), valamint 13 szintet [16] . A szint (Level) a dekóder számítási képességeihez és a memóriaterheléshez kapcsolódó adatfolyamra vonatkozó korlátozások halmaza. A szint beállítása a maximális mintavételezési gyakoriság, a maximális keretméret, a maximális bitsebesség, a minimális tömörítési arány, valamint a dekóder és a kódoló keretpuffer-képessége alapján történik. A réteg ( eng. Tier - tier) fogalmát olyan alkalmazásokhoz vezették be, amelyek csak a maximális bitsebességben és a kódoló keretpufferének kapacitásában különböznek egymástól. A fő réteget a legtöbb alkalmazáshoz tervezték, míg a High réteget az igényesebb alkalmazásokhoz. Egy adott rétegnek és rétegnek megfelelő dekódolónak dekódolnia kell az adott réteg és réteg paramétereivel kódolt összes adatfolyamot, valamint az összes alsó réteget és réteget. 4 alatti szintek esetén csak a Core Layer [1] [16] megengedett .
Szint | Max. mintavételi frekvencia [ 17] (Hz) |
Max. keretméret [ 17] (pixel) |
Max. bitsebesség fő és fő 10 profilhoz (kbps) |
Képkockafelbontás példa @ max. képkockasebesség (max . framebuffer mérete) |
Min. tömörítési arány | |
---|---|---|---|---|---|---|
Alapréteg | magas réteg | |||||
egy | 552 960 | 36 864 | 128 | - | 128×[email protected] (6) 176×[email protected] (6) |
2 |
2 | 3 686 400 | 122 880 | 1500 | - | 176×[email protected] (16) 352×[email protected] (6) |
2 |
2.1 | 7 372 800 | 245 760 | 3000 | - | 352×[email protected] (12) 640×[email protected] (6) |
2 |
3 | 16 588 800 | 552 960 | 6000 | - | 640×[email protected] (12) 720×[email protected] (8) 720×[email protected] (8) 960×[email protected] (6) |
2 |
3.1 | 33 177 600 | 983.040 | 10 000 | - | 720×[email protected] (12) 720×[email protected] (12) 960×[email protected] (8) 1280×[email protected] (6) |
2 |
négy | 66 846 720 | 2 228 224 | 12 000 | 30 000 | 1280×[email protected] (12) 1920×[email protected] (6) 2048×[email protected] (6) |
négy |
4.1 | 133 693 440 | 20 000 | 50 000 | 1280×[email protected] (12) 1920×[email protected] (6) 2048×[email protected] (6) |
négy | |
5 | 267 386 880 | 8 912 896 | 25 000 | 100 000 | 1920×[email protected] (16) 3840×[email protected] (6) 4096×[email protected] (6) |
6 |
5.1 | 534 773 760 | 40 000 | 160 000 | 1920×[email protected] (16) 3840×[email protected] (6) 4096×[email protected] (6) |
nyolc | |
5.2 | 1 069 547 520 | 60 000 | 240 000 | 1920×[email protected] (16) 3840×[email protected] (6) 4096×[email protected] (6) |
nyolc | |
6 | 1 069 547 520 | 35 651 584 | 60 000 | 240 000 | 3840×[email protected] (16) 4096×[email protected] (16) 4096×[email protected] (12) 7680×[email protected] (6) 8192×[email protected] (6) |
nyolc |
6.1 | 2 139 095 040 | 120 000 | 480 000 | 3840×[email protected] (16) 4096×[email protected] (16) 4096×[email protected] (12) 7680×[email protected] (6) 8192×[email protected] (6) |
nyolc | |
6.2 | 4 278 190 080 | 240 000 | 800 000 | 3840×[email protected] (16) 4096×[email protected] (16) 4096×[email protected] (12) 7680×[email protected] (6) 8192×[email protected] (6) |
6 |
ISO szabványok | |
---|---|
| |
1 -től 9999 -ig |
|
10 000 és 19999 között |
|
20000+ | |
Lásd még: Azon cikkek listája, amelyek címe "ISO"-val kezdődik |
Videó tömörítés | |
---|---|
ITU-T ajánlások | |
ISO / IEC szabványok |
|
SMPTE szabványok | |
MPEG-4 kodekek | |
Veszteségmentes |
|
Digitális mozi | |
Egyéb kodekek | |
Lásd még |