Gladka interpolacija ključnih sličic¶
Ste se kdaj vprašali, zakaj lahko v Kdenlive način gladke interpolacije preseže vrednosti med ključnimi sličicami? In kako povedati programu Kdenlive, naj se izogne takšnim situacijam?
Poglejmo v zakulisje in se seznanimo s čudnim svetom gladkosti. Ne skrbite, ne boste se morali učiti in razumeti matematike. Samo opazujte številke. Pokazali vam bomo tudi, kako se izogniti takšnim prekomernostim v tistih situacijah, ko si tega ne želite. Za resnično radovedneže, ki želijo vedeti, kakšna matematika se skriva za »gladko« interpolacijo, pa je na voljo nekaj dodatnega branja v razdelku Opombe na dnu te strani.
Klančina odtemnitve¶
Začnimo s preprosto rampo, kot je prikazana tukaj. Uporabimo ključni sličici[1], eno z nastavitvijo nizke vrednosti in drugo z nastavitvijo visoke vrednosti. Dejanske vrednosti niso pomembne. Ključni sličici nastavimo na način interpolacije gladko.
Prikaz učinka znotraj posnetka časovnice je videti kot enakomerna klančina. Če pa med drsenjem po časovnici pozorno opazujete interpolirane vrednosti, morate opaziti, da se naklon klančine spreminja. Na koncu in začetku je naklon manjši kot na sredini, kjer je višji.
Kaj točno se tukaj dogaja?
Na voljo je spletno odprto-kodno orodje GeoGebra za preizkušanje matematike v pogonu MLT programa Kdenlive.
Ta slika prikazuje ključni sličici P1=0 in P2=1, kar je dokaj tipična nastavitev povečanja. Če se že sprašujete: ni pomembno, pri katerih sličicah so posamezne ključne sličice.
Gladka interpolacija, ki jo bo izračunal MLT, je narisana kot debela zelena črta. Upognjena je podobno kot velika črka S, vendar ne preveč.
In če pogledate pozorno, potem začetni in končni naklon zelene črte nista vodoravna ‒ kar smo morda pričakovali na začetku.
Morda se sprašujete, za kaj sta dobri drugi dve ključni sličici P0 in P3? No, matematika v ozadju vedno zahteva štiri ključne sličice, da bi interpolirali po segmentih med poljubnima dvema sosednjima ključnima sličicama. In če ni predhodne (P0) ali sledeče (P1) ključne sličice, potem bomo preprosto ponovili levo (P1) ali desno (P2) ključno sličico.
Klančina navzgor in … prekoračitev¶
Zdaj pa dodajmo še tretjo ključno sličico, tako da je to videti kot klančina s platojem. To je prikazano na posnetkih zaslona.
In zdaj, klančina navzdol dobi jasno vidno izboklino namesto ostrega naklona. No, to je videti gladko, vendar ne ravno tisto, kar smo morda želeli? Zakaj je torej tako?
To je zdaj naša klančina s platojem: P0=0, P1=1, P2=2. Ne skrbite glede oštevilčenja ključnih sličic.
Ali ste pričakovali, da bo plato tudi raven plato? Seveda ste pričakovali. Toda morda ste že opazili, da se Kdenlive ne obnaša ravno tako. Namesto tega matematika interpolacije povzroči, da interpolirane vrednosti ponorijo, kot lahko zlahka vidite na sliki.
V zaodrju počne matematika počne naslednje: interpolacija je gladka, tako da je naklon na levo od P1 enak desnemu od P1. Ja, to je nekoliko drugačno »gladko« od tega, kar ste morda pričakovali.
Če želite, da je namesto tega plato raven, morate nastaviti način interpolacije ključne sličice P1 na linearno. Mimogrede, to ne spremeni prejšnjega gladkega segmenta na noben način. In to ima za rezultat »grobo ukrivljeno« pri P1, na srečo pa v večini primerov verjetno tega ne boste opazili.
Klančina navzgor-ravno-navzdol¶
Dodajmo še eno, četrto ključno sličico, tako da imamo: najprej klančino navzgor, nato plosko, nato klančino navzdol. Dokaj tipična predloga ključnih sličic za odtemnitev in zatemnitev.
In poglejte, kaj se zgodi: dobili smo grbo, ne pa lepega in ravnega srednjega dela.
Tokrat si ogledamo osrednji del P1-P2. Na levi strani vidimo klančino navzgor, desno klančino navzdol.
Gladko zdaj pomeni, da v segmentih ni ostrega zavoja oz. kolena. Namesto tega sta levi in desni naklon zvezna pri P1 in P2; to je v srednjem delu. In to povzroča, da je naša interpolirana vrednost presežna.
Naredi plosko znova krasno¶
Kako bomo dobili raven vrh? Na srečo je to enostavno doseči, kot lahko vidite na posnetkih zaslona.
Opombe
- Nadaljnje branje
Kot se morda (ali pa tudi ne) spomnite, je mehanizem za upodabljanje Kdenlive MLT Multimedia Framework. Medtem ko ima MLT že približno od sredine leta 2013 gladko interpolacijo (smooth interpolation), ga je Kdenlive šele pozneje dohitel in zdaj podpira vse tri načine interpolacije linearno, diskretno in gladko. Kot je razvidno iz izvorne kode MLT (source code), se gladka interpolacija izvaja z uporabo Catmull-Rom spline. MLT uporablja zlasti t. i. enakomerno različico, ker je tako preprosta. Slaba stran je, da ima to glajenje včasih nezaželeno lastnost pretiravanja, zlasti takrat, ko to najmanj pričakujete.
- Viri
Izvirno besedilo je uporabnik TheDiveO poslal na zdaj že ukinjen blog kdenlive.org. Za to dokumentacijo je bilo povzeto iz kdenlive.org, posodobljeno in prilagojeno, da ustreza splošnemu slogu.