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)