4K-suoratoisto on uusi normi, mutta yli 8,2 miljoonan pikselin tiedot lähetetään 16 millisekunnin välein – 4K-videon tallentaminen ja lähettäminen Internetiin ei ole helppoa.
Kahden tunnin elokuvassa olisi yli 1,7 teratavua tallennustilaa pakkaamattomana. Joten miten suoratoistojättiläiset, kuten YouTube ja Netflix, onnistuvat tallentamaan ja suoratoistamaan videoita, jotka vievät niin paljon tilaa?
No, he eivät, koska he käyttävät videokoodekkeja elokuvien koon pienentämiseen, mutta mikä on videokoodekki ja mikä niistä on paras?
Mikä on videokoodekki?
Ennen kuin sukeltaa syvälle videokoodekkien monimutkaisuuteen, on tärkeää ymmärtää, miten video luodaan. Yksinkertaisesti sanottuna video on vain joukko still-kuvia, jotka korvaavat toisensa nopeasti.
Tämän suuren muutosnopeuden vuoksi ihmisaivot ajattelevat kuvien liikkuvan, mikä luo illuusion videon katsomisesta. Siksi katsoessasi 4K-videota katsot vain kuvia, joiden resoluutio on 2160x3840. Tämä korkea kuvien resoluutio mahdollistaa 4K-videon, joka tarjoaa upean videokokemuksen. Tämä kuvien korkea resoluutio kuitenkin kasvattaa videon kokoa, mikä tekee mahdottomaksi suoratoistaa rajoitetun kaistanleveyden kanavien, kuten Internetin, kautta.
Tämän ongelman ratkaisemiseksi meillä on videokoodekit. Lyhenne sanoista kooderi/dekooderi tai pakkaus/dekompressio, videokoodekki pakkaa kuvavirran databitteiksi. Tämä pakkaus voi joko heikentää videon laatua tai sillä ei ole vaikutusta siihen käytettyjen pakkausalgoritmien perusteella.
Kuten nimestä voi päätellä, koodekin pakkausbitti pienentää kunkin kuvan kokoa. Tehdäkseen saman pakkausalgoritmi hyödyntää ihmissilmän vivahteita – estää ihmisiä tietämästä, että heidän katsomansa videot on pakattu.
Purku päinvastoin toimii päinvastoin ja tekee videon käyttämällä pakattua tietoa.
Vaikka koodekit tekevät erinomaista työtä tiedon pakkaamisessa, saman suorittaminen voi rasittaa prosessoriasi. Tästä johtuen on normaalia nähdä järjestelmän suorituskyvyn vaihteluita, kun suoritat videonpakkausalgoritmeja järjestelmässäsi.
Tämän ongelman ratkaisemiseksi suorittimet ja grafiikkasuorittimet tulevat erikoislaitteistolla, joka voi suorittaa näitä pakkausalgoritmeja. Antaa CPU: lle mahdollisuuden suorittaa käsillä olevat tehtävät, kun erillinen laitteisto käsittelee videokoodekkeja, mikä parantaa tehokkuutta.
Kuinka videokoodekki toimii?
Nyt kun meillä on perusymmärrys siitä, mitä videokoodekki tekee, voimme tarkastella koodekin toimintaa.
Chroma Subampling
Kuten aiemmin selitettiin, videot koostuvat kuvista, ja värin alinäytteenotto vähentää kunkin kuvan tietoja. Tätä varten se vähentää kunkin kuvan sisältämää väritietoa, mutta miten ihmissilmä havaitsee tämän väritietojen vähenemisen?
Ihmissilmät havaitsevat loistavat kirkkauden muutokset, mutta samaa ei voida sanoa väreistä. Tämä johtuu siitä, että ihmissilmässä on enemmän sauvoja (valoreseptorisoluja, jotka vastaavat kirkkauden muutosten havaitsemisesta) verrattuna kartioihin (valoreseptorisolut, jotka vastaavat värien erottamisesta). Tankojen ja kartioiden ero estää silmiä havaitsemasta värimuutoksia verrattaessa pakattuja ja pakkaamattomia kuvia.
Kroma-alinäytteenottoa varten videon pakkausalgoritmi muuntaa pikselitiedot RGB-muodossa kirkkaus- ja väritiedoiksi. Tämän jälkeen algoritmi vähentää kuvan värin määrää pakkaustasojen perusteella.
Ylimääräisten kehystietojen poistaminen
Videot koostuvat useista kuvakehyksistä, ja useimmissa tapauksissa kaikki nämä kehykset sisältävät saman tiedon. Kuvittele esimerkiksi video, jossa henkilö puhuu kiinteää taustaa vasten. Tässä tapauksessa kaikilla videon kehyksillä on samanlainen koostumus. Siksi kaikkia kuvia ei tarvita videon renderöimiseen. Tarvitsemme vain peruskuvan, joka sisältää kaikki tiedot ja tiedot, jotka liittyvät muutokseen siirtyessä kehyksestä toiseen.
Näin ollen videon koon pienentämiseksi pakkausalgoritmi jakaa videokehykset I- ja P-kehyksiin (ennustettuihin kehyksiin). Tässä I-kehykset ovat perustotuuksia, ja niitä käytetään P-kehysten luomiseen. Sitten P-kehykset renderöidään käyttämällä I-kehysten tietoja ja kyseisen kehyksen muutostietoja. Tätä menetelmää käyttämällä video jaetaan joukoksi I-kehyksiä, jotka on lomitettu P-kehykseksi, joka pakkaa videota edelleen.
Liikepakkaus
Nyt kun olemme jakaneet videon I- ja P-kehyksiin, meidän on tarkasteltava liikkeen pakkausta. Osa videon pakkausalgoritmia, joka auttaa luomaan P-kehykset käyttämällä I-kehyksiä. Tätä varten pakkausalgoritmi jakaa I-kehyksen lohkoiksi, jotka tunnetaan makrolohkoina. Näille lohkoille annetaan sitten liikevektorit, jotka määrittelevät suunnan, johon nämä lohkot liikkuvat siirtyessään kehyksestä toiseen.
Nämä kunkin lohkon liiketiedot auttavat videon pakkausalgoritmia ennustamaan kunkin lohkon sijainnin tulevassa kehyksessä.
Suurtaajuisten kuvatietojen poistaminen
Aivan kuten muutokset väritiedoissa, ihmissilmä ei pysty havaitsemaan hienoisia muutoksia kuvan suurtaajuisissa elementeissä, mutta mitä ovat korkeataajuiset elementit? Näetkö, näytölläsi renderöity kuva sisältää useita pikseleitä, ja näiden pikselien arvot muuttuvat näytettävän kuvan mukaan.
Joillakin kuvan alueilla pikseliarvot muuttuvat asteittain, ja tällaisilla alueilla sanotaan olevan alhainen taajuus. Toisaalta, jos pikselitiedoissa tapahtuu nopea muutos, alue luokitellaan korkeataajuista dataa sisältäväksi. Videon pakkausalgoritmit käyttävät diskreettiä kosinimuunnosta suurtaajuisen komponentin vähentämiseen.
Näin se toimii. Ensin DCT-algoritmi toimii jokaisessa makrolohkossa ja havaitsee sitten alueet, joilla pikseliintensiteetin muutos on erittäin nopea. Sitten se poistaa nämä datapisteet kuvasta - pienentäen videon kokoa.
Koodaus
Nyt kun kaikki videon ylimääräiset tiedot on poistettu, voimme tallentaa loput databitit. Tätä varten videon pakkausalgoritmi käyttää koodausmenetelmää, kuten Huffman-koodausta, joka linkittää kaikki databitit kehyksessä niin monta kertaa kuin ne esiintyvät videossa ja sitten yhdistää ne puumaisesti. Nämä koodatut tiedot tallennetaan järjestelmään, mikä mahdollistaa videon toiston helposti.
Eri videokoodekit käyttävät erilaisia tekniikoita videoiden pakkaamiseen, mutta hyvin perustasolla ne käyttävät viittä edellä määriteltyä perusmenetelmää videoiden koon pienentämiseen.
AV1 vs. HEVC vs. VP9: Mikä koodekki on paras?
Nyt kun ymmärrämme koodekkien toiminnan, voimme määrittää, mikä on paras AV1:stä, HEVC: stä ja VP9:stä.
Kokoonpuristuvuus ja laatu
Jos sinulla on 4K-video, joka vie paljon tilaa järjestelmästäsi etkä voi ladata sitä omaan suosikki suoratoistoalusta, saatat etsiä videokoodekkia, joka tarjoaa parhaan pakkauksen suhde. Sinun on kuitenkin myös otettava huomioon, että sen tarjoama laatu heikkenee, kun pakkaat videota. Siksi pakkausalgoritmia valittaessa on tärkeää tarkastella sen tarjoamaa laatua tietyllä bittinopeudella, mutta mikä on videon bittinopeus?
Yksinkertaisesti sanottuna videon bittinopeus määritellään bittien määräksi, jonka video tarvitsee toistaa sekunnissa. Esimerkiksi 24-bittisen pakkaamattoman 4K-videon 60 ruudulla bittinopeus on 11,9 Gb/s. Siksi, jos suoratoistat pakkaamatonta 4K-videota Internetissä, Wi-Fi-verkkosi on toimitettava 11,9 gigabittiä dataa joka sekunti, mikä kuluttaa kuukausittaisen datakiintiösi minuuteissa.
Pakkausalgoritmin käyttäminen päinvastoin vähentää bittinopeutta hyvin pieneen määrään perustuen valitsemaasi bittinopeutta heikentämättä laatua.
Mitä tulee pakatettavuus/laatulukuihin, AV1 on ykkönen ja tarjoaa 28,1 prosenttia parempia pakkaus verrattuna H.265:een ja 27,3 prosentin säästö verrattuna VP9:ään, samalla kun se tuottaa samanlaisen laatu.
Siksi, jos etsit parasta pakkausta ilman laadun heikkenemistä, AV1 on pakkaussuhde sinulle. AV1-koodekin erinomaisen pakkaus-laatusuhteen ansiosta Google käyttää sitä omassa toiminnassaan videoneuvottelusovellus Google Duo ja Netflix, kun lähetät videota pienen kaistanleveyden datayhteydellä.
Yhteensopivuus
Kuten aiemmin selitettiin, videon pakkausalgoritmi koodaa videon, kun se on pakattu. Nyt tämän videon toistamiseksi laitteesi on purettava se. Siksi, jos laitteessasi ei ole laitteisto-/ohjelmistotukea videon purkamiseen, se ei voi suorittaa sitä.
Siksi on tärkeää ymmärtää pakkausalgoritmin yhteensopivuusnäkökohta, koska mitä järkeä on luoda ja pakata sisältöä, joka ei toimi monilla laitteilla?
Joten jos yhteensopivuus on jotain mitä etsit, VP9:n pitäisi olla sinulle sopiva koodekki sitä tuetaan yli kahdessa miljardissa päätepisteessä ja sitä voidaan käyttää kaikissa selaimissa, älypuhelimissa ja älypuhelimissa TV.
Samaa ei voida sanoa AV1:stä, koska se käyttää uudempia, monimutkaisempia algoritmeja pienentämään videon tiedostokokoa, eikä sitä voida toistaa vanhemmilla laitteilla. Selaintuen osalta Safari ei voi toistaa AV1:tä, mutta selaimet, kuten Firefox ja Chrome, voivat toistaa AV1-videoita ilman ongelmia.
Laitteistotuen osalta uudet SoC: t ja GPU: t, kuten Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, Nvidian RTX 4000-Series sekä Intel Xe- ja Arc GPU: t tukevat nopeutettua laitteistodekoodausta AV1-koodekille. Jos omistat näillä piirisarjoilla toimivia laitteita, voit nauttia AV1-koodekkien avulla pakatun sisällön suoratoistosta kuluttamatta prosessorisi/GPU: si tehoa.
Mitä tulee H.265-pakkaukseen, suosituimmat selaimet, kuten Safari, Firefox ja Google Chrome, voivat suorittaa pakkausalgoritmilla koodattuja videoita ilman ongelmia. Verrattuna AV1:een ja VP9:ään H.265 ei kuitenkaan ole avointa lähdekoodia, ja H.265-koodekin käyttöä varten on hankittava lisenssit. Tästä syystä käyttöjärjestelmän mukana tulevat sovellukset, kuten Microsoftin Movies & TV -videosoitin, eivät voi oletusarvoisesti käyttää H.265-koodattuja videoita. Sen sijaan käyttäjien on asennettava lisäosia Windows-kaupasta suorittaakseen tällaisia videoita.
Koodauksen nopeus
Videokoodekit pienentävät videon kokoa huomattavasti, mutta videon koon pienentämiseksi pakkaamaton video on käsiteltävä ohjelmistolla, mikä vie aikaa. Siksi, jos haluat pienentää videon kokoa, sinun on tarkasteltava aikaa, joka kuluu videon pakkaamiseen pakkausalgoritmin avulla.
Mitä tulee koodaustehokkuuteen, VP9 on kärjessä, ja videoiden pakkaamiseen kuluva koodausaika on paljon pienempi kuin H.265 ja AV1. AV1 puolestaan on hitain koodausajassa ja voi kestää kolme kertaa enemmän aikaa videon koodaamiseen verrattuna H.265:een.
Mikä koodekki kannattaa valita?
Mitä tulee videokoodekkeihin, täydellisen koodekin löytäminen on hyvin subjektiivista, koska jokainen koodekki tarjoaa erilaisia ominaisuuksia.
Jos etsit parasta videolaatua, valitse AV1. Toisaalta, jos etsit yhteensopivaa videokoodekkia, VP9 sopisi sinulle parhaiten.
Lopuksi H.265-koodekki sopii erinomaisesti, jos tarvitset hyvää laatua ja pakkausta ilman koodauskuluja.