sobota, 4 lutego 2012

Stabilizacja video w post produkcji (1/3)


[read this article in English]

Problem
filmujac z reki, generalnie nagrany material ma sporo wstrzasow i niechcianych ruchow kamery. Gdy staramy sie prowadzic samemu kamere, na trajektorie naszego planowanego ruchu kamery nakladaja sie wszelkie inne ruchy naszego ciala. Gdybysmy sprobowali nagrywac nieruchomo z kamery tryzmanej w reku, zauwazyc da sie nawet wiecej niechcianych ruchow. Nawet nasz puls moze spowodowac delikatne, niechciane ruchy kamery - im lzejsza kamera, tym wiekszy staje sie ten problem. Technika filmowania kamera trzymana przez operatora jest jednak popularna, i w branzy nazywana jest "teady cam" albo "steadicam" - i w jakis sposob, gdy ogladamy sceny filmowe, kazdy ruch kamery jest plynny i stabilny (spokojny).

Rozwiazanie
Istnieja rozwiazania na pozbycie sie opisanego wyzej problemu, i uzyskanie plynnego ruchu kamery w materiale filmowym. Wspanialym rozwiazaniem sa mechaniczne stabilizatory - sa to systemy "zawieszenia" kamery, wyposazone w obciazniki, silowniki i zawiasy izolujace niechciane ruchy ciala od samej kamery. Niektore z tych systemow kosztuja fortune, inne troche mniej, ale realnie stabilizuja kamere w czasie, gdy prowadzi ja operator, jednak, NIE JEST to typ stabilizacji o jakim bede tu pisal.
W temacie wspomnialem o stabilizacji w post produkcji - czyli po tym jak material zostal juz nagrany. Jest to mozliwe dzieki oprogramowaniu i odpowiedniej edycji cyfrowego filmu. Jezeli chodzi o stosowne oprogramowanie, to istnieje wiele narzedzi, ktore umozliwiaja stabilizacje video. Ja skupie sie na pewnym darmowym narzedziu: VirtualDub. Ale na poczatek nieco teorii.

Wbudowana (w kamere) stabilizacja obrazu
Aby wyczerpac temat, wspomne tu jeszcze o wbudowanych w wiele kamer funkcji stabilizacji obrazu.Wiele kamer pozwala wlaczac i wylaczac ta funkcje. Poniewaz kamera i tak naszpikowana jest elektronika, pod zewnetrzna plastikowa powloka, jezeli znajduje sie w niej rowniez zyroskop i/lub akcelerometr, to kamera moze byc "swiadoma" ruchu jaki wykonuje. Mozna wowczas umiescic w niej mini system stabilizacji. Matryca swiatloczula moze posiadac mechaniczne zawieszenie, ktore bedzie nia poruszac w taki sposob, aby kompensowac nerwowe ruchy kamery. Jednak znacznie bardziej prawdopodobne jest, ze kamera posiada tzw. cyfrowy stabilizator obrazu - jest to de facto stabilizacja za pomoca oprogramowania w fazie "prawie post". Sama kamera nagrywa klatki filmu, ale w momencie zapisu ich na wewnetrznym nosniku pamieci masowej, klatki te sa analizowane i przetwarzane przez wbudowane w kamere oprogramowanie (firmware) tak, ze to co zostanie zapisane, moze byc w rzeczywistosci modyfikacja tego, co zostalo "zobaczone" przez kamere w trakcie nagrywania. W taki sposob mozliwa jest m.in. cyfrowa stabilizacja obrazu. Jednak nawet material nagrany w taki sposob, mozna czesto dalej "ulepszyc" stabilizujac go na komputerze.

"Odtrzesanie" video - teoria
video to strumien pojedynczych obrazow - klatek. Kazdy z tych obrazow przedstawia scene ograniczona z kazdej strony kadrem. Kiedy recznie prowadzimy kamere, ruch kadru wzgledem sceny nie jest plynny.
Najpierw stworzmy prosta scene - postac stojaca nieruchomo w pustej przestrzeni:

Kiedy filmujemy ta scene, kamera "widzi" tylko jej wycinek - kadr:

Prostokat reprezentuje kadr uchwycony przez kamere. Kiedy filmujemy z tripoda, kadr nie przemieszcza sie, ale kiedy prowadzimy kamere, w kazdej klatce materialu kadr znajduje sie w innym miejscu, w zaleznosci od trajektorii ruchu kamery:

Potem, kiedy ogladamy tak nagrany material, kadr bedzie nieruchomy, osadzony na naszym wyswietlaczu/monitorze, i to scena bedzie zdawac sie w nim poruszac. Ruch ten, gdy filmujemy z reki, moze byc bardzo nerwowy, pelen niechcianych wstrzasow:

A wiec jak wogole dziala stabilizacja takiego materialu? Mozna by uproscic sprawe do trzech krokow:

1. Wyznaczneie wspolnego regionu wszystkich klatek (sledzenie ruchu kamery)
2. Wyrownanie wszystkich klatek do wspolnego punktu w scenie (blokada)
3. Opcjonalnie: usowanie lub kompensacja "pustych krawedzi"

A wiec zaczynamy od wyznaczenia wspolnego regionu dla wszystkich klatek. Dla prostoty, wyobrazmy sobie, ze mamy tylko 2 klatki:



Z wieksza iloscia klatek po prostu powtarzamy ta sama czynnosc, poniewaz w pierwszym przykladzie mielismy 3 klatki, ponizej wyznaczony wspolny region dla wszystkich trzech:
Nastepna czynnoscia, jest wycentrowanie wszystkich klatek to wspolnego punktu centralnego - srodka wspolnego regionu. Kazda z klatek, moze wymagac poruszenia w lewo/prawo po osi poziomej lub/i w gore/dol w osi pionowej, aby znalezc sie w tym wspolnym srodku. Ale niestety, kiedy przesuwamy scene, jakas jej czesc wyjdzie poza kadr ("zmarnuje sie") a po przeciwleglej stronie kadru powstanie "brak", najczesciej wypelniony czarnymi pikselami. W ten sposob w koncowym materiale, obraz bedzie wydawal stabilny, natomiast w kadrze przeskakiwac beda czarne krawedzie:

Moglibysmy tu poprzestac, ale zaadresujemy problem przypominajac trzeci krok wymieniony wczesniej: usowanie krawedzi. Logika tu jest bardzo prosta: kiedy obraz posiada "ubytek", POWIEKSZAMY go tak, az wypelni caly kadr:
No i mamy ustabilizowane nagranie, bez krawedzi! Ale rowniez, mamy nagranie powiekszone wzgledem oryginalnego:/ Fakt ten stanowi pewien problem. W cyfrowym przetwarzaniu obrazu, powiekszanie jest generalnie mniej "oplacalna" czynnoscia niz pomniejszanie. Dlaczego? O ile zmiejszanie obrazu cyfrowo to tylko odjecie czesci informacji, o tyle powiekanie wymaga dodawanie informacji.. no wlasnie skad? W obrazie cyfrowym najmniejsza czastka jest jeden piksel, ktory zawsze posiada swoj kolor. Kiedy powiekszymy obraz 2x, to ten jeden piksel stanie sie czterema! (obszar 1x1 stanie sie obszarem 2x2). Jaki kolor powinien miec kazdy z tych nowych pikseli? Taki sam jak oryginalny piksel? W taki sposob powiekszony obraz bedzie sie skladal z kolorowych kwadratow, im wieksze one beda, tym gorzej wygladac bedzie obraz dla naszych oczu. Czy jest to realny problem? Zalezy jak na to spojrzec. Standardowa rozdzielczosc dla filmu DVD w formacie MPEG-2 przy 25 klatkach na sekunde to 720x576 pikseli. Monitor komputera w dzisiejszych czasach ma znacznie wieksza rozdzielczosc. Dlatego kiedy otworzymy taki film w komputerz, w skali 1:1, zajmie on jedynie male okno na pulpicie. A co stanie sie kiedy powiekszymy to okno na caly ekran? Obraz zostanie powiekszony, ale jego jakosc nadal bedzie ostra dla naszych oczu.

Moja praktyka: filmowanie w 1080p dla filmu w 720p
Zazwyczaj problem moze miec wiecej niz jedno rozwiazanie. To co ja uczynilem swoja "dobra praktyka" to krecenie scen do filmu w wiekszej rozdzielczosci niz ta, w ktorej planuje film. Na przyklad, jezeli chce stworzyc film w 720 p, poszczegolne sceny nagrywam w 1080p (chyba ze nagrywam z tripoda). Potem, stabilizuje sceny i zmniejszam do 720p. Podczas stabilizacji, po usunieciu "skaczacych krawedzi" pozostaje, jak to nazwalem, wspolny region. Duza szansa, ze jezeli pochodzi z nagrania 1080p to jest wiekszy niz 720p. Kiedy zapisze ten ustabilizowany film w 720p to zamiast operacji cyfrowego powiekszania obrazu, uzyje operacji cyfrowego pomniejszania - bedzie to mialo pozytywny wplyw na koncowa jakosc.

Uwaga na temat "wspolnego regionu"
scena im dluzsza tym bardziej nierownomiernie moze wymagac stabilizacji. Fragment sceny moze byc dosc plynny, podczas gdy inny fragment moze zawieraj sporo wstrzasow. Z tego powodu czasami lepiej oplaca sie podzielenie sceny na mniejsze porcje i stabilizowanie kazdej z nich oddzielnie. Po co tak komplikowac? Powiedzmy, ze pierwsza polowa sceny jest bardzo plynna, natomiast druga polowa posiada wiele mocnych wstrzasow. Gdybysmy stabilizowali obie czesci oddzielnie, to pierwsza czesc mialaby wiekszy region wspolny niz druga, a zatem wymagalaby mniejszego powiekszenia niz druga czesc. Ale gdyby cala scena byla stabilizowana na raz, jedynym regionem wspolnym bylby ten najmniejszy dla calej sceny. I pierwsza polowa sceny musialaby zostac powiekszona tak samo mocno jak druga. Stabilizujac obraz warto zatem dzielic scene na porcje, dla kazdej z ktorych oddzielnie wyznaczany jest region wspolny. Nastepnie, pomiedzy kazdymi dwiema porcjami mozemy zastosowac plynne przejscie zoomu. Dobre oprogramowanie, podczas analizy materialu video zadecyduje (najlepiej jako opcja, aby bylo demokratycznie) o tym na jakie porcje podzielic scene. Warto rowniez pamietac o tej teorii decydujac o tym jaki fragment nagranej sceny wyciac i uzyc w koncowej produkcji.


Jest to koniec pierwszej czesci, a pozostale czesci obejma:

Czesc #2 - Wprowadzenie do programu VirtualDub, i jego pluginu Deshaker
Czesc #3 - Automatyzacja i ulatwienie pracy z pluginem Deshaker

Brak komentarzy:

Prześlij komentarz