Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Seinni hlutinn: Hvernig vídeó merkjamálið virkar

Hvaða raster sem er mynd er hægt að tákna í formi tvívítt fylki. Þegar kemur að litum er hægt að þróa hugmyndina með því að skoða mynd sem þrívítt fylki, þar sem viðbótarvíddir eru notaðar til að geyma gögn fyrir hvern lita.

Ef við lítum á endanlega litinn sem samsetningu af svokölluðu. frumliti (rauður, grænn og blár), í þrívíddarfylki okkar skilgreinum við þrjú plan: það fyrsta fyrir rautt, annað fyrir grænt og það síðasta fyrir blátt.
Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði
Við munum kalla hvern punkt í þessu fylki pixla (myndeining). Hver pixla inniheldur upplýsingar um styrkleika (venjulega sem tölugildi) hvers litar. Til dæmis, rauður pixla þýðir að það inniheldur 0 grænt, 0 blátt og hámarksrautt. Bleikur pixel hægt að mynda með því að nota blöndu af þremur litum. Með því að nota tölusvið frá 0 til 255, er bleikur pixel skilgreindur sem Rauður = 255, Grænt = 192 и Blár = 203.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Þessi grein var birt með stuðningi EDISON.

Við erum að þróa forrit fyrir myndbandseftirlit, myndstraum, og einnig erum við trúlofuð myndbandsupptaka á skurðstofu.

Aðrar leiðir til að umrita litmynd

Það eru margar aðrar gerðir til að tákna litina sem mynda mynd. Til dæmis er hægt að nota verðtryggða litatöflu, sem þarf aðeins eitt bæti til að tákna hvern pixla, í stað þeirra þriggja sem þarf þegar RGB líkanið er notað. Í slíku líkani er hægt að nota 2D fylki í stað 3D fylki til að tákna hvern lit. Þetta sparar minni en gefur minna litasvið.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

RGB

Skoðaðu til dæmis þessa mynd hér að neðan. Fyrsta andlitið er alveg málað. Hinir eru rauðu, grænu og bláu planunum (styrkur samsvarandi lita er sýndur í grátóna).

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Við sjáum að rauðir tónar í frumritinu verða á sömu stöðum þar sem björtustu hlutar annars andlitsins sjást. Þó framlag bláa sé aðallega aðeins í augum Mario (síðasta andlit) og þætti í fötum hans. Taktu eftir því hvar öll þrjú litaflötin leggja minnst af mörkum (dökkustu hlutar myndanna) - yfirvaraskegg Mario.

Til að geyma styrkleika hvers litar þarf ákveðinn fjölda bita - þetta magn er kallað smá dýpt. Segjum að 8 bitar séu eytt (miðað við gildi frá 0 til 255) á hvert litaplan. Þá höfum við 24 bita litadýpt (8 bitar * 3 R/G/B flugvélar).

Annar eiginleiki myndar er heimild, sem er fjöldi pixla í einni vídd. Oft táknað sem breidd × hæð, eins og í 4 af 4 dæmimyndinni hér að neðan.
Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Önnur eign sem við tökumst á við þegar unnið er með myndir/myndbönd er stærðarhlutföll, sem lýsir eðlilegu hlutfallssambandi milli breiddar og hæðar myndar eða pixla.

Þegar þeir segja að ákveðin kvikmynd eða mynd sé 16 sinnum 9 að stærð, þá meina þeir venjulega skjáhlutfall (DAR - frá Sýna stærðarhlutfall). Hins vegar geta stundum verið mismunandi lögun einstakra punkta - í þessu tilfelli erum við að tala um pixla hlutfall (PAR - frá Pixel stærðarhlutfall).

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Athugasemd til gestgjafans: DVD соответствует DAR 4 til 3

Þó að raunveruleg DVD upplausn sé 704x480, heldur hún samt 4:3 myndhlutfalli vegna þess að PAR er 10:11 (704x10 / 480x11).

Og að lokum getum við ákveðið vídeó eins og röð af n ramma fyrir tímabilið tíma, sem getur talist aukavídd. A n þá er rammahraði eða fjöldi ramma á sekúndu (FPS - frá Rammar á sekúndu).

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Fjöldi bita á sekúndu sem þarf til að sýna myndband er hans sendingarhraði - bitahraði.

bitahraði = breidd * hæð * bita dýpt * rammar á sekúndu

Til dæmis myndi 30 fps, 24 bps, 480x240 myndband krefjast 82,944,000 bps eða 82,944 Mbps (30x480x240x24) - en það er ef engin þjöppunaraðferð er notuð.

Ef flutningshraðinn nánast stöðugt, þá heitir það stöðugur sendingarhraði (CBR - frá stöðugur bitahraði). En það getur líka verið mismunandi, í þessu tilfelli er það kallað breytilegt flutningshraða (VBR - frá breytilegur bitahraði).

Þetta línurit sýnir takmarkaða VBR, þar sem ekki of margir bitar fara til spillis ef um er að ræða alveg dökkan ramma.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Verkfræðingar þróuðu upphaflega aðferð til að tvöfalda skynjaðan rammahraða myndbandsskjás án þess að nota viðbótarbandbreidd. Þessi aðferð er þekkt sem fléttað myndband; Í grundvallaratriðum sendir það hálfan skjáinn í fyrsta "ramma" og hinn helminginn í næsta "ramma".

Eins og er eru senur að mestu leyti gerðar með því að nota framsækin skönnunartækni. Það er aðferð til að sýna, geyma eða senda hreyfimyndir þar sem allar línur hvers ramma eru dregnar í röð.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Jæja! Núna erum við meðvituð um hvernig mynd er sýnd stafrænt, hvernig litum hennar er raðað, hversu mörgum bitum á sekúndu við eyðum til að sýna myndband, ef bitahraði er stöðugur (CBR) eða breytilegur (VBR). Við vitum um tiltekna upplausn sem notar tiltekið rammatíðni, við þekkjum mörg önnur hugtök, svo sem fléttað myndband, PAR og nokkur önnur.

Fjarlægir offramboð

Það er vitað að myndband án þjöppunar er ekki hægt að nota venjulega. Klukkutíma langt myndband með 720p upplausn og 30 ramma á sekúndu myndi taka 278 GB. Við komumst að þessu gildi með því að margfalda 1280 x 720 x 24 x 30 x 3600 (breidd, hæð, bitar á pixla, FPS og tími í sekúndum).

Nota taplaus þjöppunaralgrím, eins og DEFLATE (notað í PKZIP, Gzip og PNG), mun ekki draga nægilega úr nauðsynlegri bandbreidd. Við verðum að leita annarra leiða til að þjappa myndbandi.

Til að gera þetta geturðu notað eiginleika framtíðarsýnar okkar. Við erum betri í að greina birtustig en lit. Myndband er röð mynda í röð sem endurtaka sig með tímanum. Það er lítill munur á aðliggjandi ramma af sömu senu. Að auki inniheldur hver rammi mörg svæði sem nota sama (eða svipaðan) lit.

Litur, birta og augu okkar

Augun okkar eru næmari fyrir birtustigi en litum. Þú getur séð þetta sjálfur með því að skoða þessa mynd.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Ef þú sérð það ekki vinstra megin á myndinni eru litirnir á ferningunum A и B eru í raun eins, þá er það eðlilegt. Heilinn okkar neyðir okkur til að gefa ljósi og skugga meira eftirtekt frekar en litum. Hægra megin á milli tilgreindra ferninga er stökkvari í sama lit - þannig að við (þ.e. heilinn okkar) ákveðum auðveldlega að þeir séu í raun í sama lit.

Skoðum (á einfaldaðan hátt) hvernig augun okkar virka. Augað er flókið líffæri sem samanstendur af mörgum hlutum. Hins vegar höfum við mestan áhuga á keilum og stöngum. Augað inniheldur um 120 milljónir stanga og 6 milljónir keila.

Við skulum líta á skynjun lita og birtu sem aðskildar aðgerðir tiltekinna hluta augans (reyndar er allt nokkuð flóknara, en við munum einfalda það). Staffrumur bera aðallega ábyrgð á birtustigi en keilufrumur eru ábyrgar fyrir lit. Keilum er skipt í þrjár gerðir, allt eftir litarefninu sem þær innihalda: S-keilur (bláar), M-keilur (grænar) og L-keilur (rauðar).

Þar sem við höfum miklu fleiri stangir (birtustig) en keilur (litur), getum við ályktað að við séum færari um að greina umskipti á milli dökks og ljóss en litum.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Eiginleikar fyrir birtuskilnæmi

Vísindamenn í tilraunasálfræði og mörgum öðrum sviðum hafa þróað margar kenningar um sjón manna. Og einn þeirra heitir birtuskilnæmisaðgerðir. Þau tengjast staðbundinni og tímalegri lýsingu. Í stuttu máli snýst þetta um hversu margar breytingar þarf áður en áhorfandi tekur eftir þeim. Athugaðu fleirtölu orðsins „fall“. Þetta er vegna þess að við getum mælt birtuskilnæmisaðgerðir, ekki aðeins fyrir svarthvítar myndir, heldur einnig fyrir litmyndir. Niðurstöður þessara tilrauna sýna að í flestum tilfellum eru augu okkar næmari fyrir birtustigi en litum.

Þar sem við vitum að við erum næmari fyrir birtustigi myndar getum við reynt að nota þessa staðreynd.

Litalíkan

Við komumst að því hvernig á að vinna með litmyndir með því að nota RGB kerfið. Það eru líka til aðrar gerðir. Það er líkan sem aðskilur birtustig frá lit og það er þekkt sem YCbCr. Við the vegur, það eru aðrar gerðir sem gera svipaða skiptingu, en við munum aðeins íhuga þessa.

Í þessu litamódeli Y er framsetning birtustigs og notar einnig tvær litarásir: Cb (ríkur blár) og Cr (ríkur rauður). YCbCr er hægt að fá úr RGB og öfug umbreyting er líka möguleg. Með því að nota þetta líkan getum við búið til myndir í fullum lit eins og við sjáum hér að neðan:

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Umbreyttu á milli YCbCr og RGB

Einhver mun mótmæla: hvernig er hægt að fá alla litina ef grænt er ekki notað?

Til að svara þessari spurningu skulum við umbreyta RGB í YCbCr. Við skulum nota stuðlana sem eru samþykktir í staðlinum BT.601, sem einingin mælti með ITU-R. Þessi deild setur staðla fyrir stafrænt myndband. Til dæmis: hvað er 4K? Hver ætti að vera rammatíðni, upplausn, litalíkan?

Fyrst skulum við reikna út birtustigið. Við skulum nota fastana sem ITU leggur til og skipta út RGB-gildunum.

Y = 0.299R + 0.587G + 0.114B

Eftir að við höfum birtustigið munum við aðskilja bláa og rauða litina:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Og við getum líka umbreytt til baka og jafnvel orðið grænt með YCbCr:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Venjulega nota skjáir (skjáir, sjónvörp, skjáir osfrv.) aðeins RGB líkanið. En þetta líkan er hægt að skipuleggja á mismunandi vegu:

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Litaundirsýni

Með mynd sem er sýnd sem sambland af birtustigi og litni, getum við nýtt okkur meiri næmni sjónkerfis mannsins fyrir birtu en litni með því að fjarlægja upplýsingar með vali. Chroma subsampling er aðferð til að kóða myndir með minni upplausn fyrir lit en fyrir birtu.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Hversu mikið er leyfilegt að minnka litaupplausnina?! Það kemur í ljós að það eru nú þegar nokkrar skýringarmyndir sem lýsa því hvernig eigi að meðhöndla upplausn og sameiningu (Litur sem myndast = Y + Cb + Cr).

Þessi kerfi eru þekkt sem niðursýnatökukerfi og eru gefin upp sem 3-falt hlutfall - a:x:y, sem ákvarðar fjölda sýna af birtu- og litamunarmerkjum.

a — láréttur sýnatökustaðall (venjulega jafn 4)
x — fjöldi litasýna í fyrstu röð pixla (lárétt upplausn miðað við a)
y — fjöldi breytinga á litasýnum á milli fyrstu og annarrar línu pixla.

Undantekningin er 4:1:0, sem gefur eitt litasýni í hverri 4x4 birtuupplausnarblokk.

Algeng kerfi sem notuð eru í nútíma merkjamáli:

  • 4:4:4 (engin niðursýni)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - samrunadæmi

Hér er sameinuð mynd með YCbCr 4:2:0. Athugaðu að við erum aðeins að eyða 12 bitum á pixla.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Svona lítur sama myndin út, kóðuð með helstu gerðum undirsýna lita. Fyrsta röðin er endanleg YCbCr, neðri röðin sýnir litaupplausnina. Mjög þokkalegur árangur, miðað við lítilsháttar gæðatap.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Manstu þegar við töldum 278 GB af geymsluplássi til að geyma klukkutíma langa myndbandsskrá með 720p upplausn og 30 ramma á sekúndu? Ef við notum YCbCr 4:2:0, þá mun þessi stærð minnka um helming - 139 GB. Enn sem komið er er það langt frá því að vera ásættanleg niðurstaða.

Þú getur fengið YCbCr vefritið sjálfur með því að nota FFmpeg. Á þessari mynd er blár ríkjandi yfir rauðu, sem sést vel í súluritinu sjálfu.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Litur, birta, litasvið - myndbandsskoðun

Við mælum með að horfa á þetta frábæra myndband. Það útskýrir hvað birta er og almennt eru allir punktarnir punktaðir ё um birtustig og lit.

Tegundir ramma

Höldum áfram. Við skulum reyna að útrýma tímaofframboðinu. En fyrst skulum við skilgreina grunnhugtök. Segjum að við séum með kvikmynd með 30 ramma á sekúndu, hér eru fyrstu 4 rammar hennar:

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Við getum séð miklar endurtekningar í römmunum: til dæmis blár bakgrunnur sem breytist ekki frá ramma til ramma. Til að leysa þetta vandamál getum við flokkað þá óhlutbundið í þrjár gerðir ramma.

I-frame (Intro Frame)

I-rammi (viðmiðunarrammi, lykilrammi, innri rammi) er sjálfstætt. Óháð því hvað þú vilt sjá fyrir þér er I-rammi í raun kyrrstæð ljósmynd. Fyrsti ramminn er venjulega I-rammi, en við munum reglulega fylgjast með I-rammi jafnvel meðal ekki fyrstu ramma.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

P-rammi (Pendurskoðaður rammi)

P-rammi (forspárrammi) nýtir sér þá staðreynd að næstum alltaf er hægt að endurskapa núverandi mynd með fyrri ramma. Til dæmis, í öðrum ramma er eina breytingin að boltinn færist áfram. Við getum fengið ramma 2 með því einfaldlega að breyta aðeins ramma 1, aðeins með því að nota muninn á milli þessara ramma. Til að smíða ramma 2, vísum við til fyrri ramma 1.

Hvernig virkar vídeó merkjamál? Hluti 1: GrunnatriðiHvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

B-rammi (Bi-spárrammi)

Hvað með tengla ekki aðeins við fortíð heldur líka framtíðarramma til að veita enn betri þjöppun?! Þetta er í grundvallaratriðum B-rammi (tvíátta rammi).

Hvernig virkar vídeó merkjamál? Hluti 1: GrunnatriðiHvernig virkar vídeó merkjamál? Hluti 1: GrunnatriðiHvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Milligöngu afturköllun

Þessar rammagerðir eru notaðar til að veita bestu mögulegu þjöppun. Við munum skoða hvernig þetta gerist í næsta kafla. Í bili skulum við athuga að það „dýrasta“ hvað varðar minni sem neytt er er I-rammi, P-rammi er áberandi ódýrari, en arðbærasti kosturinn fyrir myndband er B-rammi.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Tímabundin offramboð (spá milli ramma)

Við skulum skoða hvaða valkosti við höfum til að lágmarka endurtekningar með tímanum. Við getum leyst þessa tegund af offramboði með krossspáaðferðum.

Við munum reyna að eyða eins fáum bitum og hægt er í að kóða röð ramma 0 og 1.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Við getum framleitt frádráttur, við dragum einfaldlega ramma 1 frá ramma 0. Við fáum ramma 1, notum aðeins mismuninn á honum og fyrri rammanum, í raun kóðum við aðeins afganginn sem verður til.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

En hvað ef ég segði þér að það er til enn betri aðferð sem notar enn færri bita?! Fyrst skulum við brjóta ramma 0 í skýrt rist sem samanstendur af kubbum. Og svo reynum við að passa kubbana úr ramma 0 við ramma 1. Með öðrum orðum, við munum áætla hreyfingu milli ramma.

Frá Wikipedia - hindra hreyfijöfnun

Blokkhreyfingarjöfnun skiptir núverandi ramma í kubba sem ekki skarast og hreyfijöfnunarvigur greinir frá uppruna kubbanna (algengur misskilningur er að fyrri rammanum er skipt í kubba sem ekki skarast og hreyfijöfnunarvigrar segja til um hvert þær kubbar fara. En í raun er þetta á hinn veginn - það er ekki fyrri ramminn sem er greindur, heldur sá næsti; það er ekki ljóst hvert kubbarnir eru að flytja, heldur hvaðan þeir komu). Venjulega skarast upprunablokkirnar í upprunarammanum. Sum myndþjöppunaralgrím setja saman núverandi ramma úr hluta af ekki einu sinni einum, heldur nokkrum áður sendum ramma.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Í matsferlinu sjáum við að boltinn hefur færst frá (x= 0, y=25) til (x= 6, y=26), gildi x и y ákvarða hreyfivektor. Annað skref sem við getum gert til að varðveita bita er að umrita aðeins muninn á hreyfivigrum á milli síðustu blokkarstöðu og þeirrar sem spáð er fyrir, þannig að endanleg hreyfivigur verður (x=6-0=6, y=26-25=1 ).

Í raunverulegum aðstæðum væri þessum bolta skipt í n blokkir, en það breytir ekki kjarna málsins.

Hlutir í rammanum hreyfast í þrívídd, þannig að þegar boltinn hreyfist getur hann orðið sjónrænt minni (eða stærri ef hann hreyfist í átt að áhorfandanum). Eðlilegt er að ekki sé fullkomið samsvörun á milli blokka. Hér er sameinuð mynd af mati okkar og raunverulegri mynd.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

En við sjáum að þegar við notum hreyfimat eru áberandi minni gögn fyrir kóðun en þegar notuð er einfaldari aðferð til að reikna delta milli ramma.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Hvernig raunveruleg hreyfijöfnun myndi líta út

Þessi tækni er notuð á allar blokkir í einu. Oft verður boltanum okkar sem hreyft er með skilyrðum skipt í nokkra kubba í einu.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Þú getur fengið tilfinningu fyrir þessum hugtökum sjálfur með því að nota Júpyter.

Til að sjá hreyfivektora geturðu búið til ytri spámyndband með því að nota ffmpeg.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Þú getur líka notað Intel Video Pro Analyzer (það er greitt, en það er ókeypis prufuáskrift sem er takmörkuð við fyrstu tíu rammana eingöngu).

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Staðbundin offramboð (innri spá)

Ef við greinum hvern ramma í myndbandi finnum við mörg samtengd svæði.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Við skulum fara í gegnum þetta dæmi. Þetta atriði samanstendur aðallega af bláum og hvítum litum.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Þetta er I-frame. Við getum ekki tekið fyrri ramma til að spá, en við getum þjappað því saman. Við skulum umrita val á rauða blokkinni. Ef við lítum til nágranna þess, þá tökum við eftir því að það eru einhver litatrend í kringum hann.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Við gerum ráð fyrir að litir dreifist lóðrétt í rammanum. Sem þýðir að liturinn á óþekktu punktunum mun innihalda gildi nágranna sinna.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Slík spá gæti reynst röng. Það er af þessari ástæðu sem þú þarft að beita þessari aðferð (innri spá) og draga síðan frá raungildin. Þetta mun gefa okkur afgangsblokk, sem mun leiða til mun þjappaðra fylkis samanborið við upprunalega.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Ef þú vilt æfa þig með innri spá, geturðu búið til myndband af macroblokkum og spám þeirra með því að nota ffmpeg. Til að skilja merkingu hvers blokkarlits verður þú að lesa ffmpeg skjölin.

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Eða þú getur notað Intel Video Pro Analyzer (eins og ég nefndi hér að ofan, ókeypis prufuútgáfan er takmörkuð við fyrstu 10 ramma, en þetta mun duga þér í fyrstu).

Hvernig virkar vídeó merkjamál? Hluti 1: Grunnatriði

Seinni hlutinn: Hvernig vídeó merkjamálið virkar

Heimild: www.habr.com

Bæta við athugasemd