Tworzenie Treści Wideo - Nagrywanie na YouTube

Kompresja i kodeki wideo – wprowadzenie

kompresja-wideo

W tym wpisie przedstawię Ci aspekty odnośnie kompresji wideo oraz kodeków. Wpis z rodzaju tych bardziej technicznych i mało praktycznych, jednak jest to absolutna podstawa. Starałem się przedstawić to w jak najbardziej zrozumiały sposób. Jest to artykuł wprowadzający do serii kompresji wideo oraz kodeków, które powinny pojawiać się cyklicznie na łamach blogu.

Klatki i pola

Liczba obrazów wyświetlanych w ciągu sekundy zwana jest szybkością klatek. Już od szybkości równej około 8 klatek na sekundę [fps] widzimy w miarę płynny ruch ale również migotanie oraz szarpanie, nierównomierne odtwarzanie. Przyjęto zatem, że wartość 16 fps jest wartością którą niweluje migotanie a przy tym jest minimalną ilością klatek na sekundę, która to zapewnia. W Polsce i nie tylko w standardzie PAL telewizja wyświetla materiał który ma 25 klatek na sekundę.

Skanowanie | Przeplot

Zostając przy klatkach musimy tutaj poruszyć temat skanowania. Mamy dwa rodzaje tego w jaki sposób może zostać zaprezentowana klatka: skanowanie progresywne oraz skanowanie z przeplotem. Mając możliwość nagrywania w HD mamy nieraz możliwość wyboru np. 1080p bądź 1080i.

Litera p oznacza nic innego jak progresywne skanowanie.  Jest to technika nagrań, w której obraz (w przeciwieństwie do skanowania międzyliniowego) jest skanowany w całości. Dzięki temu obraz pojawia się w całości na ekranie telewizora.

Litera i oznacza nagranie z przeplotem [ang. interlacing] –System wideo z przeplotem skanuje najpierw nieparzyste, a następnie parzyste linie, łącząc ostatecznie pola, aby uzyskać k0mpletną klatkę. Używa on obu pół z przeplotem, aby wygenerować pełny obraz.

Nagranie z przeplotem są wypierane przez nagranie progresywne. Nawet kamery wideo mogące nagrywać jedynie obrazy z przeplotem zaczynają być wyposażane w pseudo progresywne, które pozwalają na tworzenie złożonych klatek.

Przeplot wprowadza również możliwość wystąpienia problemu zwanym migotaniem międzyliniowym. Ten efekt pojawia się np. gdy osoba występująca w telewizji ubrana jest w koszule mającą delikatny wzór złożony z ciemnych i jasnych linii.

Ważne jest natomiast jedno: wideo musi mieć format progresywny jeżeli chcemy do finalnie oglądać w Internecie bądź urządzeniach przenośnych.

Szybkość transmisji – bit rate

Im większy bit rate naszego materiału tym lepsza jego jakość. Większa szybkość transmisji poprawia odtwarzanie ruchu, gdyż pozycja ruchomego obiektu jest wizualizowana i uaktualniania dużo częściej. Bit rate ściśle wiąże się z rozdzielczością materiału, długości materiału oraz tego na jaki nośnik należy to nagrać. Ale nie przejmuj się na dniach pojawią się artykuły, które wyjaśnią to na przykładzie danego kodeka.

Rozróżniamy dwa typy kodowania: CBR [ Constant Bit Rate ] oraz VBR [ Variable Bit Rate ].

Pierwszy z nich korzysta na całej długości trwania z materiału z ustalonej wcześniej wartości bit rate, natomiast VBR korzysta z widełek bit rate jakie mu ustalimy np. przedział 6000 – 9000 kbps. I teraz gdy akcja w danym momencie jest statyczna, kodowanie będzie z niższą wartością bit rate, natomiast gdy akcja jest szybka, zastosuje wartość 9000 kbps. Osobiście stosuję CBR.

Rozdzielczość obrazu

Inaczej ilość informacji w każdej klatce. Standardowo format PAL ma rozdzielczość 720 na 576 pikseli. To np. rozdzielczość filmów DVD czy też telewizji analogowej. Format HDV 1080p/i to rozdzielczość wynosząca 1920 na 1080 klatek.

Wiem, że format PAL powoli będzie odchodził w zapomnienie, jednak płyty DVD nadal są w modzie. Format PAL ma coś takiego jak obszar wygaszania. Co to właściwie jest? Otóż format PAL jest oparty na rozdzielczości wynoszącej 625 poziomych linii. Niektóre z tych linii używane są do celów synchronizacji oraz wygaszania, dlatego też na aktywnym obszarze ekranu widocznych jest 576 linii.

Pamiętaj aby przed eksportem finalnego pliku, wartość rozdzielczości była parzysta. Nieparzyste wartości mogą generować błędy lub doprowadzą do tego, że materiał nie zostanie w ogóle odtworzony.

Im wyższa rozdzielczość naszego materiału, tym większy bit rate musi nadać materiałowi aby uniknąć artefaktów.

Jeżeli nośnik na który ma być przygotowany plik finalny nasz ogranicza, lepiej nadać wyższy bit rate przy mniejszej rozdzielczości aniżeli dać wysoką wartość rozdzielczości wraz z niską bit rate. Przestrzegaj się przed tym.

Współczynnik kształtu

Stosunek szerokości obrazu do jego wysokości zwany jest współczynnikiem kształtu [ang. aspect ratio]. Jeżeli zachwiejemy te proporcje to siłą rzeczy otrzymamy zniekształcony plik wynikowy. Aby to zobrazować weźmy pod lupę format 4:3 który był obecny w Polsce przez kilkadziesiąt lat na ekranach telewizorów kineskopowych. Współczynnik kształtu 4:3 czyli dzieląc to wychodzi nam wartość 1,33. Taki właśnie pixel aspect ratio ma format 4:3.

Problem pojawił się gdy chcieliśmy obraz panoramiczny 16:9 ukazać na telewizorze 4:3. Powstały wtedy dwa procesy: pan & scan oraz letterbox. Ten drugi przyjął się zdecydowanie lepiej. Przy pan & scan boki kadru były obcinane aby dopasować do formatu 4:3, w przypadku letterbox, dodawano czarne pasy na dole i na górze aby jak najlepiej odwzorować format panoramiczny na formacie 4:3. Zapewne lepiej zobrazuje Wam to obrazek poniżej.

Pan & Scan

Letterbox

obrazki pochodzą z witryny http://msdn.microsoft.com/pl-pl

Głębia kolorów

Liczba bitów wykorzystywana do reprezentacji koloru danego piksela. Wyraża się w jednostce bpp (ang. bits per pixel). Większa głębia koloru oznacza szerszy zakres kolorów. Im mniejsza wartość tym mniej odcieni i mniej informacji do zapisu – mniejsza waga pliku. 8 bitów to 256 odcieni ponieważ 2 do potęgi 8 wynosi 256.

Kompresja wideo

Działanie kompresji wideo można najprościej zdefiniować jako analizowanie wartości każdej klatki i ustalanie, w jaki sposób można ją odtworzyć przy użyciu mniejszej ilości informacji. Dokonujemy tego dzięki kodekom. Aby efektywnie sobie z tym radzić algorytm kompresji/dekompresji dzieli sobie obraz na makrobloki. Dzięki temu kodeki mogą podzielić obraz na grupy pikseli które są umieszczone obok siebie. To właśnie dzięki temu, wszystko idzie sprawniej 😉

Aby wygenerować cały obraz niekiedy nie potrzeba dużo informacji [niski bit rate] mowa tutaj o obrazach, które nie zawierają ruchu. W przypadku np. eksplozji następuje zmiana wielu pikseli dlatego też więcej danych musi zostać przesłanych [wyższy bit rate].

Kompresja bezstratna oraz stratna

Cóż, tutaj nie ma co się nad to rozwodzić, sama nazwa wskazuje czego można się spodziewać po danej kompresji.

Kompresja bezstratna jest rzadziej stosowana ponieważ plik z kompresją bezstratną przeważnie zajmuje kolosalne wartości. Aktualnie kodeki są na tyle zaawansowane, iż kompresja stratna daje świetną jakość wynikową w stosunku do wagi pliku.

To tyle jeżeli chodzi o takie teoretyczne zagadnienia dotyczące kodowania oraz kompresji. Myślę, że każdy powinien choć trochę naświetlić sobie ten temat, co pomoże mu później zrozumieć to wszystko w praktyce. Kolejne dni swojej pracy poświęcę na to, aby wytłumaczyć Ci proces kompresji na praktycznych przykładach korzystając z konkretnych kodeków, stay tunned! 😉

Nazywam się

Bartosz Bartczak “WideoNinja”

i od kilkunastu lat tworzę treści wideo. 

Pomagam przedsiębiorczym osobom tworzyć nienaganne wideo za pomocą sprawdzonej i rzetelnej wiedzy w skompresowanej formie.

2 komentarze

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.