Kąt · 180°Oddech · zmiana FOVRolling · linia po liniiSkos · przy panoramie
Rozdział 32 / Matryca

Czas: migawka, oddech i rolling shutter

Klatka nie jest chwilą, tylko odcinkiem czasu — a w matrycy CMOS nie wszystkie linie mają ten sam odcinek. Stąd 180 stopni, stąd pochylone słupy i stąd zmiana kadru przy przejeździe ostrości.

TL;DR
Odcinek · klatka ma czas trwania

Skąd bierze się smuga

Cała ta książka mówiła dotąd o świetle w przestrzeni: gdzie biegnie, gdzie się zbiera, gdzie się rozprasza. Zostało jedno zjawisko, którego nie da się narysować na przekroju, bo dzieje się w czasie.

Migawka otwiera się i zamyka. Między jednym a drugim nośnik sumuje wszystko, co do niego dotarło — a jeśli obraz przedmiotu w tym czasie przesunął się po matrycy, to każdy punkt na drodze tego przesunięcia dostał część światła. Powstaje smuga o jasności odwrotnie proporcjonalnej do swojej długości, bo ta sama energia rozłożyła się na większą powierzchnię.

Warto to nazwać wprost, bo w programach rozmycie ruchu bywa suwakiem oderwanym od reszty: rozmycie ruchu jest całką, a nie efektem. Nie dokłada się go do obrazu — obraz jest nim od początku, bo nie istnieje sposób zarejestrowania czegokolwiek w zerowym czasie.

Długość smugi w pikselach liczy się bez żadnej optyki, z samej kinematyki:

s = v · t s — długość smugi w pikselach. v — prędkość obrazu przedmiotu na matrycy w px/s. t — czas otwarcia. Jeśli przedmiot przebiega kadr w pół sekundy przy szerokości 4096 px, to v = 8192 px/s, a przy 1/48 s smuga ma 171 px.
Kąt migawkiile klatki trwa otwarcie
180°
tarcza migawki obraz przedmiotu przebiegającego kadr smuga: 171 px czas otwarcia: 1/48 s światło: nominalne standard kinowy
Przy 24 kl./s. Kąt migawki podaje, jaki wycinek obrotu tarczy przypada na otwarcie — 180° to połowa odstępu między klatkami.

Suwak pokazuje dwie rzeczy naraz i to jest cała zależność, którą trzeba znać: skracanie migawki skraca smugę i zabiera światło w tej samej proporcji. Migawka 90° daje smugę o połowę krótszą i o działkę ciemniejszy obraz — nie da się mieć jednego bez drugiego, bo obie rzeczy wynikają z tej samej liczby.

Sto osiemdziesiąt · skąd ta liczba

Reguła, która nie jest prawem

Migawka 180° stała się domyślną, bo przy dwudziestu czterech klatkach na sekundę daje wynik, którego oko nie kwestionuje. Nie ma w tym nic fundamentalnego — jest to zgodność między długością smugi a odstępem między klatkami.

Rozumowanie idzie tak. Ruch pokazywany na ekranie jest ciągiem próbek, a między jedną a drugą przedmiot przeskakuje o pewien odcinek. Jeśli smuga jest równa połowie tego odcinka, kolejne klatki niemal się stykają — nie nakładają się i nie zostawiają dziury. Oko dostaje sygnał spójny z tym, jak sumuje ruch samo z siebie.

Odstępstwa w obie strony działają dokładnie tak, jak wynika z tego rozumowania.

Migawka krótsza — 45°, 22,5° — zostawia między klatkami przerwy. Ruch przestaje być ciągły i staje się serią zamrożonych póz; przy szybkim ruchu poprzecznym daje to widoczne przeskoki, zwane strobingiem. Bywa to używane celowo, dla wrażenia ostrości i nerwowości, i wtedy jest decyzją, a nie błędem.

Migawka dłuższa — 270°, 360° — daje smugi dłuższe niż przeskok, więc kolejne klatki na siebie zachodzą. Ruch robi się miękki i senny, a przedmioty tracą krawędzie. Przy 360° migawka nie zamyka się wcale i smuga jest równa całemu przeskokowi.

Rachunek smugi dla typowych ruchów kamery i przedmiotu, tabela przeskoków przy różnych częstotliwościach oraz to, jak liczyć rozmycie w compie z wektorów ruchu — Dodatek R.

Rolling shutter · dół widzi inną chwilę

Kiedy klatka nie ma jednego czasu

Do tej pory zakładaliśmy, że cały kadr jest odsłaniany w tym samym odcinku czasu. W matrycy CMOS zwykle nie jest — i to jest źródło zjawiska, którego nie da się naprawić w compie bez odtworzenia jego geometrii.

Odczyt CMOS przebiega linia po linii. Pierwsza linia zaczyna zbierać światło, po chwili zaczyna druga, potem trzecia — i tak przez cały kadr. Każda zbiera przez tyle samo czasu, ale każda zbiera w innym momencie. Między startem pierwszej a startem ostatniej mija czas odczytu całej matrycy.

Rolling shutterskos startów
migawka globalna — wszystkie linie w tym samym czasie słup pionowy zostaje pionowy rolling shutter — każda linia startuje później słup pionowy pochyla się oś pozioma: czas
Przy panoramie w prawo obraz przesuwa się w lewo, a ponieważ dolne linie fotografują później, słup zostaje w nich narysowany dalej w lewo. Pion staje się skosem.

Konsekwencje są trzy i wszystkie warto rozpoznawać w plate'cie.

Warto przy tym zauważyć, że rolling shutter nie ma nic wspólnego z czasem otwarcia i nie da się go skrócić przymykaniem migawki. Decyduje czas odczytu matrycy, czyli to, jak szybko elektronika przechodzi przez wszystkie linie — parametr konstrukcyjny, ustalony raz na kamerę. Dlatego skos przy panoramie jest w danym aparacie zawsze taki sam przy tej samej prędkości ruchu, niezależnie od tego, na jakim czasie się filmuje.

Dla compu wynika stąd rzecz konkretna: element wstawiany w ujęcie z rolling shutterem musi być tak samo pochylony, a pochylenie zależy od pozycji w pionie. Element trzymany pionowo w kadrze, w którym cała reszta się skosi, jest widoczny natychmiast — bo oko porównuje go z tłem, a nie z pionem.

W CG · trzy rzeczy robione inaczej

Dlaczego smuga z renderu nie pasuje

Silnik renderujący też całkuje po czasie, ale robi to inaczej niż migawka — i trzy z tych różnic są na tyle widoczne, że warto je znać z nazwy.

Całkowanie jest skończone. Migawka sumuje ruch w sposób ciągły; render bierze skończoną liczbę próbek i uśrednia. Przy zbyt małej liczbie próbek smuga rozpada się na widoczne kopie przedmiotu — zjawisko wyglądające jak duch, a będące po prostu za rzadkim próbkowaniem. Reguła jest prosta: próbek trzeba tyle, żeby sąsiednie kopie dzieliło mniej niż piksel, więc długa smuga potrzebuje ich więcej niż krótka.

Pozycja migawki jest ustawieniem. Otwarcie może być wyśrodkowane na czasie klatki, zaczynać się w nim albo w nim kończyć. Różnica wynosi pół czasu otwarcia i objawia się tym, że element wyprzedza tło albo za nim zostaje — mimo że jego animacja jest poprawna, a smuga ma właściwą długość.

Pozycja migawkita sama długość, inne miejsce
klatka n klatka n+1 wyśrodkowana od klatki do klatki smuga wokół pozycji z klatki smuga za pozycją — element wyprzedza smuga przed pozycją — element zostaje wszystkie trzy mają tę samą długość otwarcia — różnią się tylko położeniem względem klatki
Objaw jest mylący: element wygląda, jakby miał złą animację, a ma złe ustawienie migawki. Rozstrzyga porównanie środka smugi z pozycją przedmiotu w danej klatce.

Rozmycie z wektorów jest odcinkiem. Rozmycie liczone w compie z map ruchu ciągnie każdy piksel wzdłuż prostej, bo wektor to prosta. Prawdziwy ruch po łuku — obracające się śmigło, wahadło, koniec kija — zostawia smugę zakrzywioną, i im dłuższe otwarcie, tym różnica większa. Przy szybkim obrocie rozmycie wektorowe daje promienie proste tam, gdzie powinny być łuki, co widać zwłaszcza na końcach.

Z tego wynika reguła podziału pracy, do której wraca Rozdział 34: ruch prostoliniowy można rozmyć w compie, obrotowy trzeba wyrenderować. Granica przebiega tam, gdzie łuk odbiega od cięciwy o więcej niż piksel.

Strobing · kiedy smuga nie sięga

Dziura między klatkami

Strobing bywa opisywany jako wada krótkiej migawki, ale to opis niepełny: decyduje stosunek smugi do przeskoku, a przeskok zależy od prędkości i od liczby klatek. Ta sama migawka 180° daje spokojny ruch przy panoramie wolnej i wyraźne przeskoki przy szybkiej.

Smuga kontra przeskokgdzie zaczyna się strobing
180° · smuga = ½ przeskoku 45° · smuga = ⅛ przeskoku 360° · smuga = przeskok ciągłość dziury styk cztery kolejne klatki — odstęp między słupkami to przeskok obrazu
Przy 45° smuga zajmuje ósmą część drogi między klatkami — pozostałe siedem ósmych to przerwa, którą oko czyta jako przeskok.

Praktyczne granice, przy 24 klatkach i migawce 180°, są znane od dawna i warto je mieć w głowie przy planowaniu ruchu kamery: przy przesunięciu przekraczającym mniej więcej jedną dwudziestą szerokości kadru na klatkę ruch zaczyna przeskakiwać, niezależnie od tego, jak dobrze policzone jest rozmycie. Przy 4096 px daje to około 200 px na klatkę.

Sposoby są dwa i oba są decyzją zdjęciową, nie techniczną. Zwolnić panoramę, albo wydłużyć migawkę i przyjąć miękkość. Trzeciej drogi nie ma — bo problem tkwi w liczbie próbek na sekundę, a nie w tym, jak każda z nich wygląda.

Z praktyki

Zmierz smugę w plate'cie, nie ustawiaj jej z pamięci. Weź przedmiot o znanej krawędzi, policz, ile pikseli zajmuje jego rozmycie, i porównaj z przesunięciem między dwiema klatkami. Stosunek tych dwóch liczb to kąt migawki wyrażony jako ułamek — i jest to jedyny sposób, żeby go poznać, jeśli nie ma go w metadanych.

Sprawdź, czy pion jest pionem. Jedno spojrzenie na słup, framugę albo krawędź budynku w ruchu wystarczy, żeby rozpoznać rolling shutter. Jeśli jest — element CG potrzebuje tego samego skosu, narastającego w dół kadru.

Rozmycie przed nośnikiem, nie po. Smuga powstaje w trakcie zbierania światła, więc wszystko, co dzieje się przy zapisie — obcięcie z Rozdziału 31, ziarno, szum — jest po niej. Rozmycie nałożone na końcu rozmywa także ziarno, którego rozmyć się nie da.

Słowniczek
kąt migawki
Jaka część odstępu między klatkami przypada na otwarcie, wyrażona w stopniach obrotu tarczy. 180° to połowa.
strobing
Przeskoki widoczne przy zbyt krótkiej migawce, gdy smugi kolejnych klatek nie stykają się ze sobą.
rolling shutter
Odczyt matrycy linia po linii, przez który różne wysokości kadru odpowiadają różnym chwilom.
migawka globalna
Odsłonięcie całej matrycy w jednym odcinku czasu. Nie ma skosu ani galarety, kosztuje układ i zwykle zakres dynamiczny.
oddech obiektywu
Zmiana kąta widzenia przy przejeździe ostrości, wynikająca ze zmiany odległości układu od matrycy.
Idź głębiej
Dodatek R — Rozmycie ruchu: kąt, czas, próbkowanie