Filtry w VirtualDub'ie

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
paku
Posty: 500
Rejestracja: poniedziałek 13 lut 2012, 11:57
Lokalizacja: wa-wa

Filtry w VirtualDub'ie

Post autor: paku »

Witam,

Chętnie zagaję sprawę obróbki filmów w domu po lotach, i to raczej filmów SD z normalnej kamerki, a nie HD - bo to inna bajka.

Ostatnio dużo czasu spędziłem nad zbudowaniem odpowiedniej sekwencji filtrów przygotowującej klatkę dla encodera.
Efekt jaki udało się uzyskać to ok 2-4% wagi pliku oryginalnego przy zachowaniu wystarczającej jakości do "zarchiwizowania" sobie filmiku na później. Sprawa była dla mnie o tyle ważna że 30min film w oryginale waży u mnie około 15-20Gb więc dysk kończy się szybko :)

Sprawa rozbija się o przygotowanie klatki w taki sposób, żeby encoder miał jak najłatwiejszą robotę zarówno w kwestii kompresji jak i jakości finalnego filmu.

Co warto wiedzieć na początek?

1. W jakiej przestrzeni barw jest zapisany oryginał - na 95% będzie to jakaś z wersji stosowanych w analogowej TV czyli jakiś YUV. A natywną przestrzenią barw VD (ogólnie komputerów) jest RGB888 czy RGB32 jak kto woli. (Warto pogooglać o tym)
2. Jak wygląda sprawa rozmiaru i proporcji obrazu. W moim przypadku największą rozdzielczość kamery uzyskuję dla proporcji 5:4 czyli obraz jest trochę rozciągnięty i wymaga "powrotu" do 4:3
3. Jaka ilość klatek jest, a jak ma być i czy obraz jest (prawie na pewno) z przeplotem.

Wiedząc to wszystko o oryginale i trochę o działaniu filtrów w VD można pokusić się o całkiem przyzwoitą redukcję wagi pliki z zachowaniem "wystarczającej" jakości.

To żeby mieć o czym czytać załóżmy, że mamy taki film - jak moje :)

1. Z przeplotem
2. Proporcja 5:4
3. Rozdzielczość 720x576 (pewnie naciągana ale taka w pliku jest)
4. Przestrzeń barw YUY2
5. 25 klatek/sek.

A chcemy uzyskać:

1. Bez przeplotu
2. 4:3
3. Rozdzielczość odpowiednia dla 4:3 z oryginału.
4. Przestrzeń RGB888
5. 25 kl/sek.

i to dopiero podać na encoder.

Po wielu próbach satysfakcjonujące dla mnie rezultaty uzyskałem dla takiej sekwencji filtrów:

Obrazek

więc kilka słów o co tu chodzi.

Po pierwsze trzeba pamiętać że każdy filtr w VD pracuje w jakieś określonej przestrzeni barw (czasem potrafi w kilku), jeśli przestrzeń ta nie jest zgodna z przestrzenią wejściowej klatki VD musi przekonwertować klatkę - odpowiednio. Każda taka konwersja powoduje pogorszenie jakości w stosunki do oryginału - więc warto unikać - ale nie zawsze się da :)
Konieczność konwersji oznaczona jest przez znacznik [C] w linii danego filtru.

To teraz po kolei:

1. Po konwersji z YUY2 na YUV (robi to VD automatycznie) stosujemy filtr deinterlace, ale BEZ gubienia półobrazów, co zwiększa ilość klatek z 25 na 50.
2. Zmieniamy proporcję z 5:4 na 4:3 (cały czas pozostajemy w przestrzeni YUV).
3. Po zmianie na RGB888 (auto VD), wygładzamy składową kolorów.
4. Wygadzamy klatkę - usuwamy szumy (2-4 daje najlepsze rezultaty)
5. Do ostatniego filtra dołączony jest cropping czyli obcięcie czarnych ramek i śmieci

W efekcie finalny rozmiar klatki to 692x528 - trochę dziwny - ale ok.

Ostatni filtr (wyłączony) zamazuje współrzędne GPS na filmie.

Dodatkowo w konfiguracji VD ustawione jest zapisanie pliku jako 25 klatek/sek - czyli gubimy co drugą (ale to dopiero dzieje się po encoderze ... chyba)

Do cierpliwych, którzy dotarli do końca mam dwa pytania - które mnie nurtują?

1. Co oznacza [3D] ??
2. Jak to jest że filtr chroma smoother otrzymując klatkę w RGB888 może wygładzić składową kolorów z YUV ???

To tyle ....
Pamiętaj - Każdy dobry uczynek będzie słusznie ukarany :)
ODPOWIEDZ