Kroma alamdiskreetimise labor

Võrdle, kuidas videokoodekid säilitavad heleduse (luma) detaili, vähendades samal ajal värvi (chroma) resolutsiooni.

Interaktiivse simulatsiooni laadimine...

miks koodekid ohverdavad esimesena värvi 🖖

Inimsilm tajub heleduse detaile teravamalt kui värvidetaile, seetõttu säilitavad koodekid täieliku heleduse (Y) resolutsiooni ja jagavad värviproove (Cb/Cr) naaberpikslite vahel. 4:4:4 salvestab kogu värvidetaili, 4:2:2 vähendab horisontaalse värviresolutsiooni poole võrra ning 4:2:0 vähendab värviresolutsiooni poole võrra nii horisontaalselt kui vertikaalselt. Ribalaiuse kokkuhoid on tõeline: 4:2:0 kasutab umbes poole vähem toormaterjali kui 4:4:4, kuid teravad värvilised tekstid ja vahelduvad värvimustrid paljastavad kao kõige esimesena.

mida kolm arvu tähendavad 🖖

Suhtarv on juhis 4 piksli laiuse ja 2 reaga ploki jaoks. Esimene arv (4) on ploki laius, teine loeb värviproove ülemises reas ja kolmas seda, mitu neist alumises reas muutub. Nii võtab 4:2:2 2 värviproovi rea kohta, samas kui 4:2:0 võtab ülemises reas 2 ja kasutab neid all uuesti (0 uut), jagades ühe värvi 2×2 ruudu peale. Heledust (luma) proovitakse alati igas pikslis.

seda tegi juba vanavanemate teler 🖖

Kroma alamdiskreetimine pole digiajastu leiutis. Kui NTSC värvitelevisioon 1953. aastal käivitus, andsid insenerid heledussignaalile umbes 4.2 MHz ribalaiust, kuid surusid kaks värvikanalit ligikaudu 1.3 MHz ja 0.5 MHz sisse — kitsas „Q" kanal kasutas ära silma eriti kehva lahutusvõimet sinakasvioletsete värvidetailide suhtes. Analoogne värvitelevisioon loobus värvilahutusest vaikselt juba aastakümneid enne, kui JPEG või H.264 selle idee vormistas.

Ü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.

Kroma alamdiskreetimise labor — viskab suurema osa värvilahutusest minema, jättes heleduse puutumata

Mis saabub
Täislahutusega luma ja kroma — üks värvidiskreet piksli kohta, kirjutatakse 4:4:4.
Mis väljub
Luma täislahutuses, kroma neljandiku diskreetidega režiimis 4:2:0.
Mida järgmine aste eeldab
Kõik edasine töötleb neli korda vähem kroma-andmeid ja dekooder interpoleerib äravisatud diskreedid tagasi.
Mis siin valesti läheb
Küllastunud serv — punane tekst mustal on tavapärane näide — saab oma värvi üle bloki laiali määritud, sest see serv asub kroma-kanalis, kust diskreedid eemaldati. Luma jääb terveks, nii et pilt näib terav ja värv vale.

Ülesanne täielikult lahendatud

  1. Baidid piksli kohta 4:4:4, 4:2:2 ja 4:2:0 puhul valimite arvu põhjal 6 sammu

    Tuletage diskreetide arvust baitide arv piksli kohta 4:4:4, 4:2:2 ja 4:2:0 jaoks, seejärel tehke kindlaks, kui palju ribalaiust 4:2:0 tegelikult kokku hoiab.

    1. Loendage diskreedid 2×2 plokis. Tähistus näitab, mitu värvussignaali diskreeti kaasneb nelja heledussignaali diskreediga ülemises ja alumises reas, seega on suhe loendur, mitte murdosa.

    2. Ülejäänud kaks režiimi eemaldavad värvussignaali horisontaalselt ning seejärel ka vertikaalselt. Iga poolitamine eemaldab ploki kaheteistkümnest diskreedist kaks.

    3. Korrutage see kaadri suuruse piksliarvuga ja võtke kokkuhoiu leidmiseks suhe. 4:2:0 on ülesehituselt täpselt pool 4:4:4-st, mitte mõõtmise tulemusel.

    4. Vaadake, kuhu diskreedid läksid. Heledussignaal (luma) on igas režiimis puutumata — ainukesena harvendatakse värvivahesignaali kanaleid ning inimsilm eristab neid umbes poole väiksema teravusega.

    5. Skaleerige see sama 1,5 baiti piksli kohta reaalsele kaadrile reaalse sagedusega.

    6. Seetõttu on tõrkerežiim pigem spetsiifiline kui üldine: kadu on täielikult kahes kanalis, mis ei kanna heledusdetaili.

    Vastus

    Poole võrra, ja pakkimata 1080p30 jaoks on see ikkagi 746 Mbit/s. See arv ongi harjutuse mõte. Värvussignaali alladiskreetimine on odavaim tihendus, mis olemas on — ei mingit teisendust, ei mingit entropiakodeerijat, ei mingit otsust — ning pärast andmete poolitamist on voog ikka veel liiga suur mis tahes koduvõrgu jaoks, mistõttu iga tarnitav koodek algab pärast seda sammu, mitte selle asemel. Põhjus, miks see visuaalselt nii vähe maksab, peitub Y-võrrandis: heledussignaali diskreeditakse iga piksli juures ja harvendatakse ainult Cb- ja Cr-kanaleid, seega jäävad servad, tekstuur ja detailid puutumata. Kannatada saab kõik, mille info peitub ainult värvis — punane tekst hallil taustal, küllastunud logo, värvivõtmega serv —, mistõttu on 4:2:0 taimestikul nähtamatu ja esitlusslaididel katastroofiline.

Allikad (1)

Näiteülesanded

  • Värviribad - Kaheksa riba 64 pikslil, seega on iga riba kaheksa ühikut lai ning 4:2:0 keskmistab värvsuse 2×2 plokkides. Ükski plokk ei ulatu kunagi üle riba serva. Iga keskmistatav plokk on järelikult juba ühe ühtlase värviga: kolm paneeli jäävad piksel piksli haaval identseks, samal ajal kui kaadri maht langeb 9 216 baidilt 4 608 peale. See 50,0% sääst ei maksa antud pildil mitte midagi.
  • Toonigradient - Sujuv toonigradient: 4:2:0 ja 4:2:2 näevad peaaegu ühesugused välja — looduslikud stseenid varjavad kromaartefakte hästi
  • Värviline tekst - Punased tähed valgel taustal, ja see on pilt, mis ka tegelikult koost laguneb. Iga joone serv on värvsuse hüpe punasest valgesse, 4:2:0 keskmistab selle 2×2 ploki piires ning servad valguvad laiali, ehkki heledus jääb täiesti teravaks. 4:2:2 maandub nende kahe vahele, kuna keskmistab vaid horisontaalselt. See säästab täpselt samad 4 608 baiti mis värviribadki, mis ei kaotanud seejuures midagi. Hinna määrab pilt, mitte suhtarv.
  • Malelaua stressitest - Nimi tõotab koormust, kuid paneelid tulevad välja identsed. Pildi ruudud on 2×2 punased ja tsüaansinised ning 4:2:0 keskmistab värvsuse samal 2×2 ruudustikul. Iga puudutatud rühm on niigi juba ühte värvi. Alamdiskreetimine ei hävita lihtsalt peeni detaile. Hävivad detailid, mis ei sammu värvsuse ruudustikuga samas rütmis. Värviline tekst näitab just seda, antud pilt aga mitte.