Dedykowane kamery wideo, a nawet kamery hybrydowe oferują obecnie mnóstwo formatów nagrywania wideo, ale jaka jest różnica między 4:2:0, 4:2:2 a surowym i jak wpłynie to na materiał filmowy? Znajomość szczegółów technicznych może być pomocna w podjęciu świadomej decyzji o wyborze formatu.
Mnogość różnych formatów nagrywania oferowanych w menu wideo aparatu może czasem wydawać się przytłaczająca, ale jeśli nie weźmiesz niczego więcej z tego artykułu, oto jego sedno:w zależności od takich czynników, jak rozdzielczość, głębia kolorów i liczba klatek na sekundę materiału wideo, operacje takie jak kodowanie i dekodowanie wideo, edycja materiału lub przechowywanie i odzyskiwanie go z plików mogą wymagać dużej ilości danych, czasu i obliczeń. Dość tajemniczo nazwane formaty wideo wspomniane w tytule tego artykułu są odpowiedzią na ten problem, oferując filmowcom różnorodne opcje dokonywania kompromisów między jakością materiału filmowego a ilością informacji (lub danych) wymaganych do jego przechowywania.
Duży kompromis:jakość obrazu a przechowywanie danych
Ogólnie rzecz biorąc, formaty wideo o najwyższej jakości będą wymagały najwięcej danych do przechowywania, podczas gdy formaty o najniższej jakości będą wymagały najmniej. Ilość danych wymaganych do przechowywania materiału wideo może mieć ważne konsekwencje praktyczne. Większe zbiory danych generowane przez wysokiej jakości formaty wideo tworzą większe pliki, co wiąże się z pewnymi potencjalnymi wadami. Do przechowywania materiału filmowego wymagana jest większa ilość cyfrowych nośników danych, a dłuższy czas zapisu plików wideo o wysokiej jakości może również nakładać ograniczenia na zdolność aparatu do przechwytywania materiału filmowego. Wybór formatu wideo o wyższej jakości może na przykład zmusić Cię do nagrywania z niższą liczbą klatek na sekundę i/lub mniejszą rozdzielczością, aby umożliwić przepływ danych z aparatu.
Problemy nie kończą się na aparacie.
Po przesłaniu większych plików na komputer w celu edycji czas i zasoby obliczeniowe wymagane do odczytania i przetworzenia tych plików są odpowiednio większe, a wykonanie tych zadań może w ogóle wystąpić, jeśli brakuje mu pamięci lub mocy obliczeniowej niezbędnej do przetwarzania tak dużych zbiorów danych.
Plusem jest to, że formaty wideo o wyższej jakości zapewniają — cóż… materiał filmowy o wyższej jakości (oczywiście) — ale mogą też zapewniać łatwiejszy przepływ pracy i lepsze wyniki w pakiecie montażowym, co omówimy później.
Prostym przykładem tego rodzaju kompromisu między jakością obrazu a rozmiarem pliku, który każdy rozumie, jest głębia bitowa. Piksele czujnika aparatu cyfrowego będą miały określoną głębię bitową do kodowania kolorów podczas nagrywania wideo lub zdjęć. Piksel o 8-bitowej głębi kolorów może zarejestrować 2⁸ lub 256 kolorów dla każdego kanału czerwonego, zielonego i niebieskiego (RGB), co daje łącznie około 16,7 miliona kolorów. Natomiast czujnik aparatu oferujący 12-bitową głębię kolorów może zarejestrować około 68,3 miliarda kolorów. Odwzorowanie kolorów 12-bitowego czujnika będzie oczywiście w większości przypadków znacznie lepsze niż w przypadku 8-bitowego czujnika, ale 20-megapikselowy obraz zarejestrowany za pomocą 12-bitowego czujnika będzie wymagał 90 megabajtów do przechowywania danych o kolorach, podczas gdy 8-bitowy czujnik wymaga 60 megabajtów (zakładając, że w żadnym przypadku nie ma kompresji obrazu).
Poniższy 8-bitowy kolorowy obraz (dzięki uprzejmości Wikipedii) ładnie ilustruje rodzaj kompromisu między jakością a rozmiarem pliku, o którym mówiliśmy. Na niebieskim tle nieba wyraźnie widać przykład zjawiska pasmowania, które może być spowodowane użyciem mniejszej głębi bitowej dla koloru.
Widoczne pasy na 8-bitowym obrazie (dzięki uprzejmości Steve F, Wikipedia)Całkiem łatwo zrozumieć, jak wybór głębi bitowej obrazu wideo może wpłynąć na kompromis między jakością obrazu a rozmiarem pliku, ale co z innymi formatami wideo o bardziej tajemniczych nazwach, takimi jak 4:2:2 i 4:2:0?
90-letni system kolorów, którego nadal używamy
Aby zrozumieć te formaty wideo, musimy wyjść o krok poza świat prostych kolorów RGB i przyjrzeć się innemu systemowi kodowania kolorów, który powstał pod koniec lat trzydziestych XX wieku, kiedy inżynierowie telewizyjni zaczęli myśleć o wprowadzeniu transmisji kolorowych. W sposób analogiczny do sytuacji, w której Microsoft w 1985 roku potrzebował, aby nowy system operacyjny Windows był kompatybilny wstecz ze wszystkimi komputerami PC, na których działał poprzedni dyskowy system operacyjny (DOS), inżynierowie telewizyjni zdali sobie sprawę, że w okresie przejściowym, gdy wciąż wprowadzano telewizję kolorową, nowe programy kolorowe będą musiały być również kompatybilne z czarno-białymi telewizorami, z których większość ludzi nadal korzystała. W 1938 roku francuski inżynier Georges Valensi opracował genialny system oddzielania czarno-białej części obrazu od kolorowych. W przypadku nowych programów kolorowych istniejące telewizory czarno-białe wykorzystywałyby po prostu czarno-białą składową sygnału, podczas gdy nowe telewizory kolorowe odtwarzałyby pełnokolorowy obraz z tej czarno-białej składowej w połączeniu z dwoma dodatkowymi kanałami kolorowymi.
Pomimo swojego wieku system Valensi, określany jako YCbCr, jest nadal w użyciu i tak naprawdę stanowi podstawę naszych nowoczesnych metod kodowania wideo (w tym formatów 4:2:2 i 4:2:0, które tutaj omówimy). Zamiast dzielić obraz na kanały czerwony, zielony i niebieski, system YCbCr dzieli obraz na dwie szerokie składowe zwane luminacją i nasyceniem. Składowa luminacji (Y w YCbCr) to zasadniczo czarno-biała część obrazu, podczas gdy składowa chrominancji składa się z dwóch kanałów różnicy kolorów — kanału różnicy koloru niebieskiego (Cb) i kanału różnicy koloru czerwonego (Cr).
Naprawdę genialnym aspektem tego systemu jest to, że bezpośrednio wykorzystuje on sposób, w jaki ludzkie oko różnie reaguje na luminancję (jasne i ciemne odcienie) oraz kolor – i robi to w bardzo sprytny sposób, który pozwala nam kodować dokładne obrazy wideo przy użyciu mniejszej ilości informacji.
Ponieważ ludzkie oko jest bardziej wrażliwe na luminancję niż na kolor, możliwe jest zakodowanie informacji o kolorze w niższej rozdzielczości, a mimo to możliwe jest zrekonstruowanie dokładnego obrazu. W przypadku nadawanego sygnału telewizyjnego odpowiada to wykorzystaniu mniejszej szerokości pasma dla składowych chrominancji (koloru) niż dla składowej lumy (luminancji). W przypadku cyfrowego obrazu wideo możemy zastosować tę samą koncepcję oszczędzającą miejsce, wykorzystując mniejszą część naszych danych do zakodowania składników chrominancji o niższej rozdzielczości.
Ale w miarę upływu reklamy – czekaj, jest więcej…
Nasze oczy są również bardziej wrażliwe na centralny zielony obszar widma widzialnego niż na kolory bliższe czerwonym lub niebieskim krańcom widma, co oznacza, że możemy jeszcze bardziej zmniejszyć ilość danych potrzebnych do przechowywania dla naszej klatki wideo, przechowując mniej informacji o kolorach czerwonym i niebieskim niż informacji o kolorze zielonym – i właśnie to może zrobić YCbCr.
Ale w tym momencie możesz zapytać:"Gdzie dokładnie znajdują się informacje o kanale zielonym? Mamy składową luminacji (czarno-białą) i kanały chrominancji dla różnic kolorów czerwonego i niebieskiego. Czy wyrzucamy kanał zielony?"
Odpowiedź brzmi:nie.
Ponieważ nasze oczy są bardziej wrażliwe na zieleń, informacje o kolorze zielonym są zachowywane w komponencie luminacji o wyższej rozdzielczości. Gdy do rekonstrukcji oryginalnego obrazu w formacie RGB potrzebna jest informacja o kolorze zielonym, można ją łatwo wyodrębnić z danych lumy.
A tak na marginesie – ta zwiększona wrażliwość ludzkiego oka na zieleń znajduje również odzwierciedlenie w układzie kolorowych filtrów w matrycy Bayera (lub X-Trans, jeśli używasz Fuji), która prawdopodobnie znajduje się przed czujnikiem aparatu cyfrowego i służy do rekonstrukcji kolorów na podstawie czystego obrazu luminancji widzianego przez czujnik. Jeśli spojrzysz na poniższy diagram, zobaczysz, że w matrycy Bayera znajdują się dwa zielone filtry dla każdego filtra czerwonego i niebieskiego, co powoduje większe obciążenie zielonego składnika obrazu zgodnie z naturalną reakcją barwną naszych oczu.
Filtr Bayera (dzięki uprzejmości Amada44, Wikipedia)Podpróbkowanie chrominancji:sprytny trik pozwalający zaoszczędzić na przechowywaniu danych
Ponieważ nasze oczy są bardziej wrażliwe na luminancję obrazu niż na jego kolory, możemy poświęcić pewną rozdzielczość informacji o kolorach — szczególnie w kanałach niebieskim i czerwonym — bez nadmiernego pogarszania dokładności naszego obrazu. Pozwala nam to jeszcze bardziej zmniejszyć ilość danych potrzebnych do przechowywania obrazu, co daje odpowiednie korzyści, jeśli chodzi o uniknięcie niektórych problemów związanych z dużymi zbiorami danych, które już omówiliśmy. Jednym ze sposobów osiągnięcia tej redukcji danych jest selektywne wykorzystanie części informacji o barwie z określonych pikseli za pomocą metody znanej jako podpróbkowanie chrominancji.
Rozważ tę tablicę 8 kolorowych pikseli na oryginalnym obrazie.
Kolorowa matryca pikseli| © Gordona WebsteraMożemy w ten sposób oddzielić składniki luminacji i chrominancji tej tablicy pikseli.
Rozdzielanie obrazu na składowe lumy i chrominancji | © Gordona WebsteraZanim przejdziemy dalej, należy zauważyć, że piksele CbCr są pokazane jako pojedyncza kombinacja pikseli kanałów Cb i Cr, ale w systemie YCbCr każdy z nich byłby w rzeczywistości zakodowany jako dwa oddzielne piksele Cb i Cr.
Zauważysz, że istnieją dwa rzędy pikseli po cztery piksele w każdym rzędzie i stąd pochodzą nazwy formatów podpróbkowania chrominancji 4:2:0 i 4:2:2. Pierwsza liczba to szerokość bloku pikseli, z którego próbkujemy kolory — w tym przypadku 4. Druga liczba to liczba pikseli, których kolory będziemy próbkować w pierwszym wierszu. Trzecia liczba to liczba pikseli, których kolory będziemy próbkować w drugim rzędzie.
Poniższy obraz wyraźniej pokazuje protokoły podpróbkowania i pomoże nam zrozumieć szczegóły każdego protokołu.
Podpróbkowanie Chroma | © Gordona WebsteraW formacie 4:2:0 próbkujemy dwa piksele w pierwszym rzędzie CbCr – piksele 1 i 3 – i żadnych pikseli z drugiego rzędu. Następnie ustawiamy piksele 1 i 2 w pierwszym wierszu na wartość piksela 1, a piksele 3 i 4 na wartość piksela 3. Ponieważ w drugim rzędzie nie próbkowaliśmy żadnych pikseli, po prostu ustawiamy wartość każdego piksela w drugim rzędzie na wartość piksela znajdującego się nad nim w pierwszym rzędzie. Dodanie z powrotem kanału luma daje nam wynik, który widzimy na dole diagramu.
Na diagramie widać, że przy podpróbkowaniu 4:2:0 poświęcamy połowę naszej rozdzielczości chrominancji w pionie i połowę w poziomie.
W formacie 4:2:2 próbkujemy dwa piksele w pierwszym rzędzie – piksele 1 i 3 – oraz te same dwa piksele w drugim rzędzie. Następnie ustawiamy piksele 1 i 2 w pierwszym wierszu na wartość piksela 1, a piksele 3 i 4 na wartość piksela 3 – ale tym razem, ponieważ próbkowaliśmy również dwa piksele w drugim rzędzie, możemy wykonać równoważną operację dla pikseli w drugim rzędzie.
Na diagramie widać, że przy podpróbkowaniu 4:2:2 poświęcamy połowę naszej rozdzielczości chrominancji w poziomie, ale zachowujemy całą naszą pierwotną rozdzielczość w pionie.
Ale co z protokołem 4:4:4 w trzeciej kolumnie?
Zauważysz, że przy podpróbkowaniu 4:4:4 używamy wszystkich wartości CbCr w każdym wierszu i dlatego nie tracimy w ogóle rozdzielczości kolorów. Protokół 4:4:4 nazywamy bezstratnym formatem kodowania wideo i jeśli już się tego nie domyśliłeś, podpróbkowanie 4:4:4 jest częściej określane jako surowe.
Wracając do pytania o jakość obrazu i przechowywanie danych
Przyjrzyjmy się najpierw, ile danych oszczędza nam każdy z tych protokołów podpróbkowania podczas kodowania materiału wideo. Dobra wiadomość jest taka, że nie musisz nawet zapamiętywać tych liczb, ponieważ istnieje bardzo prosta zasada, dzięki której można to wywnioskować na podstawie samej nazwy protokołu. Za chwilę podam tę krótką zasadę, ale zobaczmy, jak to działa.
Jeśli zakodujemy wszystkie 8 pikseli przy użyciu YCbCr (4:4:4) z głębią bitową 8, potrzebujemy 8 bitów na każdy piksel luma, 8 bitów na każdy piksel Cb i 8 bitów na każdy piksel Cr, co daje w sumie 192 bity do zakodowania pełnej 8-pikselowej tablicy. Jest to wymaganie dotyczące przechowywania bezstratnego formatu raw, które możemy przyjąć jako punkt odniesienia, ponieważ nie oszczędzamy miejsca przy użyciu tego protokołu.
W przypadku formatu 4:2:2 mamy tylko cztery piksele Cb i cztery piksele Cr zamiast ośmiu każdego, więc możemy zakodować pełną tablicę 8 pikseli przy użyciu tylko 128 bitów, co pozwala zaoszczędzić jedną trzecią.
W przypadku formatu 4:2:0 mamy tylko dwa piksele Cb i dwa piksele Cr zamiast ośmiu każdego, więc możemy zakodować pełną tablicę 8 pikseli przy użyciu tylko 96 bitów, co oznacza oszczędność o połowę.
Szybka i prosta zasada pozwalająca obliczyć, ile oszczędza każdy format wideo, polega na zsumowaniu liczb w nazwie protokołu i podzieleniu przez 12. Zatem 4:4:4 =12/12 =1, 4:2:2 =8/12 =0,67 i 4:2:0 =6/12 =0,5. Łatwe!
A co z jakością obrazu?
W obliczu całej tej dyskusji o rezygnacji z rozdzielczości kolorów można pokusić się o stwierdzenie, że 4:2:0 to jakiś szybki i brudny protokół do przechwytywania materiału wideo o niskiej jakości przy minimalnej ilości pamięci, ale może Cię zaskoczyć fakt, że 4:2:0 jest w rzeczywistości standardem dla wysokiej jakości cyfrowych nośników wideo, takich jak Blu-ray. Jeśli weźmiemy pod uwagę analogię ze świata fotografii, konwertując obraz z jego oryginalnego formatu RAW do formatu JPEG, skutecznie odrzucamy ogromną ilość informacji, ale nadal możemy wykonać wydruki wielkości ściany z obrazu JPEG, jeśli rozdzielczość jest wystarczająca.
Prawdę mówiąc, w większości przypadków trudno byłoby dostrzec dużą różnicę, jeśli w ogóle, pomiędzy filmem nakręconym w formacie raw a filmem nakręconym w formacie 4:2:0. Różnice są zdecydowanie widoczne, jeśli wolisz podglądanie pikseli, ale zazwyczaj są subtelne — pojawiają się głównie w scenach, w których kadr jest podzielony ostrymi krawędziami na granicach różnych kolorów. Poniższy obraz przedstawia porównanie trzech omawianych tutaj protokołów podpróbkowania, a w powiększeniu można zobaczyć ślady artefaktów podpróbkowania dla 4:2:0 i 4:2:2.
Artefakty podpróbkowania chrominancji, dzięki uprzejmości Janke, WikipediaOprócz wyższej jakości materiału wideo, surowe wideo (4:4:4) naprawdę wyróżnia się pod względem montażu. Wracając do naszej analogii ze zdjęciami, wielu profesjonalnych fotografów robi zdjęcia w formacie RAW, nawet jeśli ostatecznie dostarczą swoje zdjęcia w skompresowanym formacie, takim jak JPEG, ponieważ zapewnia im to znacznie większą elastyczność i kontrolę podczas procesu edycji. To samo podejście często stosują profesjonalni kamerzyści.
Surowe wideo jest nieskompresowane (lub wykorzystuje kompresję bezstratną), zachowując kolory w pełnej rozdzielczości dla każdego piksela i unikając problemów związanych z artefaktami kompresji na etapie edycji. Ponieważ wideo jest nieprzetworzone, edytor wideo ma znacznie większą elastyczność w zakresie manipulowania materiałem i dostosowywania go — na przykład ustawiania balansu bieli, odzyskiwania prześwietlonych lub ciemnych cieni lub stosowania gradacji kolorów. W przypadku pracy z kluczowaniem chrominancji – na przykład kręcenia zdjęć na zielonym ekranie – lub dowolnego rodzaju kompozycji w postprodukcji, użycie nieprzetworzonego wideo jest niezbędne, aby uniknąć artefaktów, takich jak kolorowe obwódki i postrzępione krawędzie, które mogą wystąpić w wyniku podpróbkowania chrominancji.
Mam więc nadzieję, że po przeczytaniu tego artykułu następnym razem, gdy zagłębisz się w menu wideo w aparacie, szeroki wachlarz opcji formatów wideo będzie mniej zniechęcający – a także będziesz mieć lepsze pojęcie o konsekwencjach wyboru jednego formatu w kontekście przechowywania materiału filmowego i obsługi go.