MPEG2 w montażu nieliniowym, część 2
Opis MPEG2 wyraźnie podzielił wideofilmowców-internautów na zainteresowanych teorią i zwolenników praktycznych wiadomości do natychmiastowego zastowania. Celowo więc wstrzymywaliśmy się z prezentacją kolejnej części cyklu, starając się określić stopień Waszego zainteresowania tą tematyką i ustalić najwłaściwszy sposób jej prezentacji. Temat więc jest kontynuowany, lecz w wersji uproszczonej bez zbytniego delektowania się terminami i zawiłościami technicznymi.
Jak lepiej komprymować (kompresować) sygnał wideo?
Zwiększenie efektywności kompresji sygnału wideo zależy od przynajmniej 2 czynników.
[1] Pierwszy z nich związany jest z ograniczeniem ilości drobnych detali w poszczególnych kadrach (tzw. element przestrzenny).
[2]Drugi zaś - z redundancją powtarzających się z kadru na kadr informacji (tzw. element czasowy). Wymienione czynniki zostają uwzględnione w algorytmach kompresji MPEG2.
[1] Pierwszy czynnik może wydać się niedorzeczny. Dlaczego mamy eliminować szczegóły? Przecież tym samym zmniejszamy czytelność i rozdzielczość obrazu. Aby uzasadnić celowość mechanizmu wpływającego na ograniczanie ilości drobnych szczegółów w obrazie, nawiążę do prób ocen kamer wideo czynionych przez amatorów. Przypomnijmy zatem sobie, na jakie elementy obrazu wideo zwracamy największą uwagę. Co w nim nam najbardziej przeszkadza. Z pewnością szumy dużych jednorodnych płaszczyzn, ogólne złe zbalansowanie bieli. Czy ktoś interesował się takimi szczegółami jak stopniem wykrzywienia konturów albo zmianą jasności czy zabarwienia drobnego elementu. Wątpię. Oko ludzkie nie jest tak drobiazgowe w postrzeganiu rzeczywistości jak oko kamery. Pewne szczegóły widziane przez oko kamery uchodzą naszej uwadze. Dlaczego więc nie skorzystać z tej wiedzy i nieco zredukować informację o szczegółach. Tak też poczyniono. W kompresji MPEG2 obraz podzielono na bloki. Każdy z bloków poddawany jest analizie. Określone zostają wielkości współczynników rozkładu częstotliwości dla każdego z bloków. Następnie dochodzi do kwantowania z zadaną częstotliwością, co daje w efekcie uśrednienie wartości współczynników z poszczególnych bloków. Czym wyższa częstotliwość kwantowania, tym wyższa rozróżnialność szczegółów. Współczynniki częstotliwości przekraczające próg kwantowania zostają eliminowane - wyzerowane i zawarta tam informacja zagubiona. Niższe-średnie wartości rozkładu częstotliwości gwarantują ogólne wrażenie czystości obrazu, płynnego przechodzenia barw. Wyższe zaś - gwarantują wyższą rozdzielczość, uwydatniają szczegóły, no i szumy, jeśli takowe są w obrazie (a na pewno są). Jak można wnioskować, utrata jakości następuje w momencie kwantowania. Czym rzadsze odczytywanie wartości (większy interwał między kolejnymi szczytywaniami), tym większa degradacja obrazu polegająca głównie na niwelowaniu szczegółów.
Chciałbym w tym miejscu nieco abstrahować od głównego tematu i zwrócić Waszą uwagę na tzw. telewizję cyfrową. Jednym z haseł prowokujących klienta do zakupu takiej telewizji jest bardzo wysoka jakość obrazu. Mając okazję jednocześnie odbierać ten sam kanał analogowo z anteny naziemnej i cyfrowo za pośrednictwem dobrodzieja cyfrowego, zastanawiam się, o jakiej jakości mówimy. Póki patrzę na 14-calowy ekran, wszystko uchodzi mojej uwadze. Jednak na 29 calach cała ta jakość w łeb bierze. Takiej tandety nie spodziewałem się, przynajmniej za taki abonament. Do czego zmierzam. MPEG2 stosowany jest przez operatorów cyfrowych. Kombinują oni dobrze, jak tu najwięcej kanałów upchać w wykupionym paśmie. Sprawa jest prosta, czym rzadsze kwantowanie, tym większa przepustowość. Tylko gdzie się podziały te duże szczegóły? O drobiazgi się nie czepiam. Zawdzięczam jednak telewizji cyfrowej wiele. Kiedy wpada do mnie wymagający klient i zaczyna dyskutować o jakości, włączam kanał cyfrowy. Ten go sobie ogląda, zaczyna chwalić. Po chwili proponuję coś z mojego archiwum. Klient zdziwiony widokiem: obraz brzytwa, głębia kolorów. Powróćmy jednak do tematu.
[2] Z pewnością drugi z wymienionych czynników dla przeciętnego wideofilmowca wyda się bardziej uzasadniony. Eliminacja ciągłego z kadru na kadr powtarzania tej samej informacji wydaje się zrozumiała. Przykładowo filmujemy nieruchomo umieszczoną kamerą fasadę budynku. Przy sprzyjających warunkach w przeciągu określonego czasu możemy nie zarejestrować żadnej istotnej zmiany. Dlaczego więc za każdym razem powtarzać tę samą informację, skoro za pierwszym razem została dokładnie opisana? Wystarczy jedynie wzmianka - nic się nie zmienia, wyświetl to samo, co przed chwilą. W pewnym momencie ktoś otwiera okno. Wówczas informujemy, że na pozycji tej i tej następuje taka zmiana i dodajemy - reszta pozostaje bez zmian. W MPEG2 nie możemy w nieskończoność powtarzać informacji - wyświetl to samo, co przed chwilą. Istnieje pewna granica ilości kadrów (fakt, jest ona zmienna), dla których zabieg ten jest obowiązujący. Po pewnym czasie informacja ta musi zostać odnowiona (w naszym przypadku powielona, bowiem nic się nie zmieniło, wciąż ten sam nieożywiony obiekt - fasada budynku). Spróbujmy jednak rozszerzyć tok naszego myślenia i zauważyć, że w rzeczywistości to niemal wszystkie sąsiadujące kadry filmu są do siebie w jakimś stopniu podobne. Większość informacji jest ta sama. Poruszający się obiekt w kolejnych kadrach przysłania kolejny fragment tła i jednocześnie odsłania wcześniej przysłaniany fragment tła. Różnice te możemy określać nie tylko na podstawie kadru poprzedniego, lecz również mającego nastąpić. Odwoływać się przy tym nie musimy do kadrów bezpośrednio stykających się z aktualnym. Może to być skok o 2-3 kadry. Następujący kadr niesie w sobie informację o tym, co poruszający obiekt odsłoni w tle.
Zmiany z kadru na kadr w wydzielonych blokach nie są duże. Wychwycenie tych zmian, które są oznaką ruchu jest nielada wyzwaniem dla programistów. Z punktu widzenia kodowania MPEG stanowi to duży problem. Bloki te nie tylko należy wykryć, lecz przypisać im właściwe wektory przesunięcia.
Eliminacja nadmiarowości informacji w potoku danych wideo oraz zapis uczestniczących w ruchu bloków realizowany jest w ramach rozczłonkowania strumienia danych obrazu na mniejsze grupy. Każda taka grupa jest autonomiczna. Składa się na nią określona ilość kadrów. Każdemu kadrowi w grupie przypisuje się właściwą mu funkcję i odpowiednio obarcza stosowną do pełnionej roli informacją o obrazie, zmianach. Szczegółowy opis grup będzie tematem kolejnego odcinka, w którym znajdą się również opisy pięciu profile.

