GOP-struktuuri visualiseerija

Visualiseeri ja analüüsi Group of Pictures (GOP) mustreid videokodeerimises. Reguleeri GOP suurust, B-kaadreid ja kaadrisagedust, et näha kompressiooni efektiivsust ja otsingu latentsust.

Interaktiivse simulatsiooni laadimine...

GOP-i pikkus ei tähenda midagi, kuni jagad selle kaadrisagedusega 🖖

Otsimise näit on see arv, mis loeb, sest just nii kaua ootab mängija, enne kui suudab pärast hüpet või kanalivahetust üldse midagi näidata. streaming kasutab 24 kaadrit 30 fps juures, seega 800 ms. bluray kasutab 48 kaadrit 24 fps juures — kaks korda rohkem kaadreid, aga 2000 ms, kaks ja pool korda pikem ootus, sest väiksem kaadrisagedus venitab sama GOP-i ajas kaugemale. allIntra seab GOP-i ühele ja teeb igast kaadrist võtmekaadri: otsimine maksab siis ühe kaadri, 33 ms, ja selle eest maksad bitikiirusega igal saadetaval kaadril.

Miks video kerimine vahel hüppab 🖖

Video salvestab harva iga kaadri täismahus. Ainult I-kaadrid (võtmekaadrid) sisaldavad terviklikku pilti; P- ja B-kaadrid kirjeldavad üksnes seda, mis naaberkaadritega võrreldes muutus. GOP on lõik ühest võtmekaadrist järgmiseni. Kerimisriba lohistades saab pleier dekodeerimist taasalustada ainult eelmisest võtmekaadrist ja ehitab siis edasi kuni sinu sihtkohani — pikk GOP hoiab seega ruumi kokku, kuid muudab kerimise aeglasemaks ja ebatäpsemaks.

Datamoshing: kunst katkistest võtmekaadritest 🖖

Kuna P-kaadrid kannavad ainult liikumist, mitte tegelikku sisu, kustutavad videokunstnikud meelega I-kaadreid, nii et dekooder jätkab vanade pikslite määrimist mööda uusi liikevektoreid. Nii tekib sulav ja laialivalguv „datamoshi" ilme, mida on näha muusikavideotes nagu Kanye Westi Welcome to Heartbreak (2009) ja Chairlifti Evident Utensil. Sama rike, mis rikub kadunud võtmekaadriga voo, muutub teadlikuks esteetikaks.

ÜKS ASTE AHELAST — MIS SAABUB, MIS VÄLJUB JA MIS EDASPIDI KATKEB

Kus see kodeerimiskonveieris asub

Videokodeerija ei ole üks algoritm, vaid kaheksa astet kindlas järjekorras — ja järjekord ei ole suvaline: iga aste on olemas seetõttu, et eelmine tegi tema töö võimalikuks. See tööriist modelleerib neist üht. Allolev ahel viitab ülejäänud seitsmele.

GOP-struktuuri visualiseerija — otsustab, millised kaadrid kodeeritakse eraldi ja millised erinevustena

Mis saabub
Rida diskreeditud kaadreid, ükski neist pole veel kodeeritud.
Mis väljub
Määrang: I-kaadrid kodeeritakse eraldi, P- ja B-kaadrid viitekaadrite suhtes.
Mida järgmine aste eeldab
Liikumise hindamine töötab ainult P- ja B-kaadritel. I-kaader jätab selle täielikult vahele.
Mis siin valesti läheb
See aste otsustab, kas järgmine antud kaadri puhul üldse käivitub, seega juhib ta 04. astet, mitte lihtsalt eelneb sellele. Pikad vahed I-kaadrite vahel pakivad tunduvalt paremini ja halvendavad kerimist, sest mängija peab suvalise punktini jõudmiseks dekodeerima viimasest I-kaadrist edasi.

Ülesanne täielikult lahendatud

  1. Kaadrite jaotus ja keskmine kaadri suurus 48 kaadri korral kiirusel 24 fps 6 sammu

    Blu-ray-stiilis pildigrupp (GOP): 48 kaadrit, 3 järjestikust B-kaadrit viitekaadrite vahel, esitatuna kiirusel 24 fps. Oleta, et I-kaader maksab 100 suhtelist ühikut, P-kaader 12 ja B-kaader 6. Leia kaadrite koosseis ja keskmine kaadri suurus, seejärel selgita välja, kui palju täiendavat kompressiooni pikem GOP võiks veel anda.

    1. Pildigrupi avab üks I-kaader, mis jätab 47 kohta. Need kohad kordavad 4-kaadrilist üksust — 3 B-kaadrit ja neid ankurdav P-kaader — ning 47 ei jagu 4-ga. 47 = 11 × 4 + 3, seega 11 täielikku üksust ja 3 B-kaadri pikkune lõpuosa.

    2. See annab 11 P-kaadrit ja 33 + 3 = 36 B-kaadrit. Kontrolli: 1 + 11 + 36 = 48.

    3. Kaalu iga tüüpi selle maksumusega. 100 + 132 + 216 = 448 ühikut kogu grupi kohta ja 448 / 48 = 9,3 kaadri kohta. Ainult kaadrisisese koodimisega (all-intra) voog maksab iga kaadri eest 100, seega on see struktuur samade 48 pildi jaoks 10,7 korda väiksem.

    4. Arve selle eest saabub viivitusena. Dekodeerimist ei saa alustada grupi keskelt — iga P- ja B-kaader on määratud millegi muu suhtes —, seega viib otsing sind I-kaadrile ja sealt dekodeeritakse edasi. Halvim juhtum on tervelt 48 kaadrit, mis kiirusel 24 fps on 2 s.

    5. Nüüd leia alampiir. Iga korduv üksus maksab 4 kaadri kohta 3 × 6 + 12 = 30 ühikut, ehk 7,5 kaadri kohta, ning GOP-i pikendamine ei tee muud kui lisab neid üksusi juurde. Lahuta see määr grupist ja üle jääb 448 - 7,5 × 48 = 88 ühikut.

    6. Need 88 on üks ja seesama arv: 100 - 12, ehk I-kaadrile kuluv lisakogus võrreldes P-kaadriga, mille asemel see asub. See lisakogus ei kasva koos grupiga, seega on see 88 olenemata pikkusest, ja keskmine on S̄ = 7,5 + 88/N. Katseta seda kahekordse pikkusega: N = 96 annab 7,5 + 88/96 = 8,4 ühikut kaadri kohta.

    Vastus

    9,3 ühikut kaadri kohta, võrreldes alampiiriga 7,5, millest ükski GOP-i pikkus ei saa allapoole minna. Kompromissi kaks poolt muutuvad vastassuundades ja kumbki pole lineaarselt selline, nagu näib: see, mida on veel võita, väheneb kui 88/N, samal ajal kui otsinguhäive kasvab kui N/24. 48 kaadri juures oled 1,8 ühikut üle alampiiri. Pikkuse kahekordistamine 96 kaadrini võidab sellest tagasi 0,9 — alla 10% kaadri suurusest — ja maksab veel 2 s halvimast otsinguviivitusest. Uuesti kahekordistamine võidab tagasi 0,46 ja maksab veel 4 s. Seega on valida tasuv GOP-i pikkus määratud viivitusega, mida oled nõus aktsepteerima, mitte kompressiooniga, mida taga ajad: üle paari tosina kaadri on veidi enam amortiseeritud I-kaader ainus asi, mida sellest veel võita saab.

Allikad (1)

Näiteülesanded

  • Madal latentsus (IP) - GOP=4, B-kaadriteta: maksimaalne kerimiskiirus, minimaalne pakkimine — levinud reaalajas voogedastuses
  • Veebistriiming (IBBP) - GOP=24, 2 B-kaadrit: ~800 ms kerimisviivitus, hea pakkimine — tüüpiline VOD-voogedastus
  • Blu-ray (IBBBP) - GOP=48, 3 B-kaadrit: ~2 s kerimisviivitus, parim pakkimine — standardne Blu-ray
  • All-Intra (ainult I) - All-intra: iga kaader on I-kaader — parim kvaliteet, 5–10× suurem kui B-kaadritega voog