| Instrukcja kompresji Divx5 w programie VirtualDub |
Autor: Mike
Proces kodowania za pomocą Divx5 jest bardzo podobny, jak w przypadku kodeka z serii 4.x.
Do kompresji użyjemy VirtualDub (dział download), który w razie potrzeby umożliwia również stosowanie filtrów (np. do oczyszczenia obrazu).
Najnowsze wersje kodeka Divx5 można ściągnąć z działu Download, lub strony www.divx.com
Aby uzyskać optymalną jakość obrazu, dokonamy kompresji dwuprzebiegowej, tzw. 2-pass, która zapewnia o wiele lepszą jakość, niż kodowanie jednoprzebiegowe (1-pass).
Instrukcja kodowania Divx 2-pass w VirtualDub składa się z następujących etapów:
1. Zgranie płyty DVD na dysk
2. Wyliczenie bitrate dla filmu
3. Uruchomienie frameservera DVD2AVI/VFAPI
4. Dobranie rozdzielczości - filtr "resize" i "crop"
5. Kompresja
Po zakończeniu kompresji otrzymamy plik AVI z obrazem, do którego należy dołączyć dźwięk (można wykorzystać np. metodę konwersji Dolby Digital do Dolby Surround opisaną dziale kompresji dźwięku).
Jeśli znalazłeś jakieś błędy w instrukcji, lub chciałbyś wysłać komentarz lub dodatkowe informacje, proszę o informację na Forum.
1. Zgranie płyty DVD na dysk
Do zgrania VOBów z filmem na dysk używamy np. popularnego SmartRippera (dział download).
Po włożeniu płyty DVD i włączeniu SmartRippera nastąpi autoryzowanie płyty.
Po chwili powinno pojawić się główne okno programu:

Wybieramy tryb "Movie" i z menu "angles" wybieramy strumień z filmem (o odpowiednim czasie trawania zgodnym z długością filmu). Następnie wybieramy katalog docelowy i klikamy na "Start". Po kilkunastu-kilkudziesięciu minutach (zależnie od szybkości napędu DVD, szybkości dysku i długości filmów) film zostanie zgrany na dysk. Możemy też użyć innego programu, np. DVDDecrypter'a (dział download).
2. Wyliczenie bitrate dla filmu
Teoretyczną wartość bitrate dla kompresji filmu możemy obliczyć za pomocą odpowiedniego kalkulatora bitrate znajdującego się w dziale Download.
Można też szybko policzyć ją ręcznie:
Ustalamy wielkość pliku AVI (np. dla 2 x 700MB = 1400MB = 1400x1024 kB = 1433600 kB).
Dzielimy tą wartość przez długość filmu w sekundach (np. 120 min = 7200 sek).
Łączne bitrate dla obrazu i dźwięku wynosi więc 1433600/7200 = 199 kB/s = 199 x 8 kbps = 1593 kbps.).
Od tej wartości odejmujemy bitrate dla dźwięku (np. Dolby Digital 384kbps): 1593 - 384 kbps = 1209 kbps i otrzymujemy wartość bitrate dla samego obrazu.
3. Uruchomienie frameservera DVD2AVI/VFAPI
Aby dostarczyć strumień MPEG2 do VirtualDub należy skorzystać z "frameservera", czyli programu tworzącego tymczasowy plik AVI poprzez który enkoder może pobierać dane do właściwej kompresji.
Wykorzystamy do tego program DVD2AVI (dział download).
Po uruchomieniu DVD2AVI wybieramy opcję "File/Open", następnie zaznaczamy odpowiednie VOB'y z filmem i klikamy na "OK":

Następnie wyłączamy obsługę Audio, ponieważ dźwięk dołączymy dopiero po kompresji obrazu:

Ponieważ będziemy kompresować filmy PAL nie musimy ustawiać dodatkowych opcji. W przypadku posiadania płyty DVD zapisanej w NTSC należy poszukać dodatkowych informacji na temat usuwania przeplotu, np. na naszym Forum, lub na stronie www.doom9.org
Z menu File wybieramy funkcję "Save Project" i zapisujemy plik z rozszerzeniem d2v. Gdy plik d2v zostanie utworzony (trwa to od kilku do kilkunastu minut), można zamknąć program DVD2AVI.
Następnym krokiem jest zainstalowanie kodeka VFAPI (dział download). Należy rozpakować zip, wejść do katalogu "Codec" i klikając prawym klawiszem myszy na pliku vifp.inf wybrać opcję "zainstaluj".
Po instalacji kodeka uruchamiamy program VFAPIConv-EN.exe:

Klikamy na "Add Job" i wskazujemy plik d2v utworzony przez DVD2AVI. Powinno pojawić się okienko potwierdzające wczytanie pliku - klikamy na "OK" i na koniec uruchamiamy VFAPI funkcją "Convert", po zakończeniu również możemy zamknąć program.
4. Dobranie rozdzielczości - filtr "resize" i "crop"
Uruchamiamy VirtualDub i wczytujemy tymczasowy plik avi utworzony przez VFAPI.
1. W menu Video zaznaczamy "Full Processing Mode" i kilkamy na "Filters". Pojawi się okienko z wyborem filtrów:

2. Kilkamy na Add i wybieramy filtr Resize i wpisujemy rozdzielczość na odpowiednią dla danego formatu filmu, na przykład:
- dla filmu o proporcjach 2.35:1 (najwęższy) - 640 x 272
- dla filmu o proporcjach 1.85:1 (średni) - 640 x 352
- dla filmu o proporcjach 4:3 (pełnoekranowe) - 512 x 384
Dla dłuższych filmów, które chcielibyśmy zmieścić na 1CD warto wybrać niższą rozdzielczość od wyżej wymienionych. Niewielka utrata ostrości będzie o wiele mniej przeszkadzać, niż makrobloki przy ruchu. Do obliczania rozdzielczości przydatny jest "Gordian Knot" za pomocą którego łatwo dobierzemy parametry dla odpowiedniego formatu obrazu.
Więcej informacji na ten temat znajduje sie w artykule o doborze odpowiedniej rozdzielczości dla Divx.
3. W polu "filter" mode wybieramy "Precise Bicubic" (gdy zależy nam na dużej ostrości) lub "Precise Bilinear" (mniejsza ostrość niż bicubic, ale lepiej się kompresuje - zalecane przy 'zaszumionych' źródłach). Jeżeli masz wątpliwości - zajrzyj do działu testów i przeczytaj porównanie pomiędzy filtrami bilinear i bicubic.
Klikamy na OK i wybieramy opcję "Cropping":

Ustawiamy pasek przewijania w dowolnym miejscu filmu, gdzie wyraźnie widać czarne paski u dołu i u góry (jeśli film jest pełnoekranowy lub anamorficzny 1.85 - nie ma potrzeby używać funkcji Cropping). Następnie za pomocą opcji Y1 Offset i Y2 Offset usuwamy czarne pasy. Jeżeli jest taka konieczność, usuwamy też wąskie paski po bokach (X1 Offset i X2 Offset). Ustawienia te warto zapamiętać, bo trzeba je będzie ustawić w drugim przebiegu.
Następnie klikamy na OK i wychodzimy z menu filtrów.
5. Kompresja
W zależności od tego, czy chcemy wykonac naraz dwa przebiegi, czy też osobno kompresować 1-st pass i 2-nd pass, możemy wybrać jeden z dwóch poniższych wartiantów:
Wariant I - osobna kompresja 1-st pass i 2-nd pass:
Etap I - Generowanie statystyk:
Po ustawieniu filtrów "resize" i "crop" wchodzimy do menu Video/Compression, wybieramy kodek Divx5 i kilkamy na "Configure".
W zakładce "Divx Codecs" wybieramy w polu "Variable bitrate mode" tryb "2-pass, first pass". W polu "Encoding bitrate" wpisujemy obliczone bitrate.
Warto jeszcze w zakładce "Advanced Parameters" zmienić "Maximum quantizer" na wartość z przedziału 6-8 (6 dla 2cd, 8 dla 1cd), aby zapobiec stosowaniu zbyt wysokiej kompresji w niektórych klatkach.
Pozostałe opcje możemy zostawić bez zmian, lub poeksperymentować z róznymi wartościami korzystając z opisu konfiguracji kodeka Divx5, ktory znajduje się poniżej.
W menu "Video" VirtualDub'a zaznaczamy "Full processing mode", w menu "Audio" tryb "No audio" oraz "Direct Stream Copy".
Klikamy na "Save AVI..." i czekamy na utworzenie pliku "log" ze statystykami.
Etap II - Kompresja filmu
W zakładce "Divx Codecs" wybieramy w polu "Variable bitrate mode" tryb "2-pass, second pass".
W menu "Log file" wskazujemy plik ze statystykami, który utworzyliśmy podczas pierwszego przebiegu.
Klikamy na "Save AVI..." i czekamy na utworzenie właściwego pliku AVI.
Po zakończeniu kompresji pozostaje przygotowanie dźwięku, opisane osobno w dziale artykułów.
Wariant II - kompresja 1-st pass i 2-nd pass za jednym razem
Postępujemy identycznie jak powyżej, z tym, że w etapie pierwszym, po wybraniu nazwy pliku w "Save AVI" zaznaczamy poniżej opcję "Add operation to job list and defer processing". Następnie przechodzimy do etapu drugiego, zaznaczając w opcjach kodeka tryb "2-pass, second pass". Następnie wchodzimy do menu "Save AVI", ponownie wskazujemy ten sam plik AVI, zaznaczając opcję "Add operation to job list and defer processing".
W ten sposób utworzyliśmy skrypt, który po wykonaniu pierwszego przebiegu automatycznie zacznie właściwą kompresję. Aby uruchomić cały proces, wchodzimy do menu " File / Job control" i klikamy na "Start".
Po zakończeniu kompresji powinniśmy otrzymać gotowy plik AVI. Instrukcja kompresji ścieżki dźwiękowej, znajduje się w dziale "Kompresja dźwięku"
KONFIGURACJA KODEKA DIVX5 (autor: Roy)
1. Zakładka "DivX Codecs"

1 - tryb kompresji, do wyboru mamy 3 sposoby:

i tutaj:
1 - kompresja jednokrotna ze zmiennym bitratem, kodek będzie dązył do utrzymania średniego zadanego bitrate, przydzielając mniej bitów scenom z małą ilością ruchu i więcej z większą ilością ruchu;
2 - kompresja jednokrotna ze stałą jakością: każda klatka zostanie zakodowana ze stałą jakością, niezależnie od ilości ruchu, w oparciu o parametr complexity. Nie jest więc możliwe określenie jaką końcową wielkość będzie miał plik avi. Tryb ten nadaje się natomiast to materiału który w dalszej kolejności będzie podlegał jeszcze kompresji.
3 - kompresja dwukrotna (2 przebiegi, 2-pass): zapewnia uzyskanie najwyższej jakości. Podczas pierwszej kompresji zbierane są tylko dane o poszczególnych klatkach filmu, które są następnie wykorzystywane podczas drugiej kompresji do przydzielenia odpowiedniej ilości bitów poszczególnym klatkom zależnie od ich parametru complexity. Zapewnia ona uzyskanie końcowego pliku avi o poszukiwanej wielkości.
2- określamy wielkość średnią bitrate dla filmu, obecnie zwiększony maksymalny dopuszczalny bitrate z 6000 do 10000 kbps. Dla kompresji dwukrotnej wartość powinna być taka sama, ale dopuszczalne są nieduże odchylenia, jeśli korygujemy w niewielkim zakresie tą wielkość dla 2 przebiegu;
3 - wskazujemy miejsce zapisu i nazwę 2 plików ze statystykami: log i bin, w przypadku wybrania kompresji dwukrotnej. W pliku z rozszerzeniem log zbierane są informacje o właściwościach kompresji dla każdej klatki, m.in. czy jest to klatka kluczowa czy też delta, wielkość ruchu i wartość complexity. W pliku o rozszerzeniu bin zbierane są informację motion vector, czyli o wartości ruchu, które są następnie wykorzystywane w drugiej kompresji co skarca czas ten kompresji, ponieważ nie potrzeba ich określać po raz drugi;
4 - opcja pozwala na ostrzeżenie przed nadpisanie plików ze statystykami;
5 - okeślając wielkość kompensacji ruchu, tj przesunięcia bloku obrazu o wielkości 16x16 pixeli lub 8x8 pixeli (Bliższych informacji o istocie kompensacji ruchu szukaj w artykule Opis formatów kompresji obrazu), dotychczas przesunięcie takie było określane o cały blok (czyli o 8 lub 16 pixeli). Uaktywnienie tej opcji pozwalana na bardziej precyzyjne określenie przesunięcia bloku z dokładnością do 1/4 wielkości bloku.
6 - opcja ta pozwala zmniejszyć ilość informacji potrzebnej do zapisania kompensacji ruchu, w przypadku kiedy mamy do czynienia w filmie ze sceną kiedy następuje panoramowanie kadru lub też powiększanie lub zmniejszanie obrazu. W scenach takich duża część informacji jest niezmienna i to jest tutaj wykorzytywane.
7 - włączenie tej opcji, powoduje że kodek obok dotychczas używanych w kompresji klatek I i P, będzie również kompresował je jako klatki typu B (bi-directional). Bliższych informacji o poszczególnych typach klatek szukaj w artykule Opis formatów kompresji obrazu. Użycie kaltek typu B pozwlana na znaczną redukcję wilkości pliku (ok. 25%) przy zachowaniu tej samej jakości obrazu. Spowalnia to jednak w dużym stopniu (ok. 30-40% wolniejsza kompresja), ponieważ wymaga wykonania o wiele większej ilości obliczeń;
8 - opcja ta pozwala na utworzenie pliku zgodnego ze standartem MPEG4
9 - okna pokazuje linię z parametrami wcześniej ustawionymi
2. Zakładka "General Parametrs"

1 - opcja ta umożliwia usunięcie brzegów obrazu
2 - tutaj możemy określić dolelową wielkość obrazu i filtr jaki ma być użyty to zmiany rozdzielczości z wejściowej na docelową;
3 - opcja ta wykorzystuje sposób w jaki ludzkie oko dostrzega poszczególne rodzaje obrazów i na tej podstawie określa w jaki sposób mają byc przydzielone bity. Tam gdzie dostrzegamy mniej szczegółów można zredukowac ilość inforamcji, a przydzielić je tam gdzie widzimy ich więcej. Opcja ta opiera się na porówniu całego szeregu klatek po sobie następujących aby wyłowić takie obrazy.
4 - pozwala na usunięcie szumu z materiału video jeszcze przed jego zakodowaniem.
5 - określamy maksymalną odległość pomiedzy klatkami kluczowymi, nie powinna być ona większa niż 300 klatek. Jeśli kodek w oparciu o mechanizm detekcji scen nie wykryje zmiany sceny w ciągu co najmnie 300 klatek, kaltka taka zostanie wstawiona zgodnie z wstawionym tutaj parametrem.
6 - określa czułość na zmianę scen.
7 i 8 - filtr do usuwania przeplotu z materiału video
9 - powrót do ustawień domyślnych kodeka
3. Zakładka "Advanced Parametrs"

1 i 2 - określamy maksymalny i minimalny stopień kompresji klatki
3 - określa ilość klatek w wstecz jakie kodek będzie brał pod uwagę określając stopień kompresji bieżącej
4 i 5 - określają w jakim zakresie kodek ma określać czy scena ma dużą ilość ruchu
6 - dostosowuje orgranizację danych w pliku tak aby była jak najbardziej zoptymalizowana dla transmisji w internecie i określa wiekość ich pakietów.
7 - określa wielkość obiążenia procesora a zarazem szybkość kompresji w stosunku do jej jakości. Tutaj zawsze należy pozostawić domyślną wartość "slowest". Wyjątkowo można zmienić na inną jeśli dokonujemy kompresji na żywo, np. transmisja w internecie i proceosr nie nadąża z kompresją. Oznacza to jednak zarazem pogorszenie jakości obrazu.
8, 9, 10 i 11 - pozwlają na utowrzenie z już gotowego pliku avi plik zgodny ze standartem mp4.
4. Zakładka "Manage Settings"

Zakładka ta umożliwia zapisanie aktualnych ustawień kodeka, załadawanie już wcześniej zapisanych ustawień. |
|