Słowo wstępne
Kodek XviD jest
implementacją standardu MPEG-4 Part 2 (ISO/IEC
#14496-2) rozprowadzaną na Licencji Publicznej GNU. Wersja 1.1.0
wnosi zmiany przede wszystkim w zakresie prędkości kompresji -
przyspieszeniu uległa kompensacja ruchu dla klatek typu B
oraz procedury poszukiwania ruchu metodą rate-distortion
(VHQ). Wprowadzono też VHQ dla B-VOPów -
jest to odpowiednik VHQ 1 - Mode Decision dla P-VOPów
(podejmuje decyzję o typie makrobloku stosując rate-distortion).
Podczas kompresji dwuprzebiegowej stosowany jest Video Buffer
Verifier - algorytm zapobiegający występowaniu skoków bitrate,
które mogłyby przepełnić bufor dekodera. Dzięki jego
wprowadzeniu możliwe było przywrócenie profili DivX
Networks, co z
pewnością docenią osoby kompresujące filmy z przeznaczeniem
dla odtwarzaczy stacjonarnych. Zniknęły opcje Reduced
Resolution oraz Closed GOV.
I - główne okno konfiguracji kodeka

1. Profile @ Level - wybór profilu MPEG-4.
Poszczególne profile MPEG-4 ograniczają dostęp do funkcji
kodeka (takich jak np. poszczególne rodzaje klatek i Quarter
Pixel) oraz rozdzielczości, ilości klatek na sekundę i bitrate,
co ma zapewnić zgodność z dekoderami MPEG-4 (głównie
sprzętowymi) zaprojektowanymi dla danego profilu. Począwszy od
wersji 1.1.0 profile te nakładają ograniczenia na bitrate,
ponieważ wprowadzono do niej mechanizm VBV (Video
Buffer Verifier). Jeśli nie zamierzamy korzystać z
dekoderów sprzętowych, możemy wybrać ustawienie (unrestricted).
Narzędzia związane z profilem MPEG-4 możemy wybrać
klikając przycisk more... - patrz punkt II.
2. Encoding type - wybór trybu kompresji.
Single pass - kompresja jednoprzebiegowa. Zlokalizowanym
poniżej przyciskiem wybieramy jeden z dwóch rodzajów kompresji
jednoprzebiegowej - target bitrate lub target quantizer.
Pierwszy z nich (target bitrate) kompresuje film ze
stałym bitrate, przez co rozmiar pliku wynikowego można
przewidzieć. Ponieważ jednak poszczególne sceny filmu
różnią się od siebie złożonością oraz ilością ruchu (przez
co każda z nich wymaga innego bitrate), nie jest on
polecany - bitrate może się okazać zbyt niski bardziej
wymagających scen. Drugi z nich (target quantizer)
kompresuje film ze stałym kwantyzatorem, dzieki czemu każda
scena otrzyma ilość bitów odpowiednią do swoich potrzeb.
Mankamentem tego rodzaju kompresji jednoprzebiegowej jest
całkowita nieprzewidywalność rozmiaru pliku wynikowego.
W polu tekstowym po prawej stronie przycisku target bitrate/target
quantizer podajemy odpowiednią wartość bitrate (w
kilobitach na sekundę) lub kwantyzator (jeśli podana wartość
nie jest liczbą całkowitą, np. 2.75, to rozkład
kwantyzatorów będzie miał postać ciągu 2, 3, 3,
3, 2, 3, 3, 3,...). Możemy
ją też określić posługując się suwakiem. Kompresja
jednoprzebiegowa ze stałym bitrate powoduje
nieekonomiczne wykorzystanie dostępnych bitów, więc gdy
zależy nam tylko na osiągnięciu średniego (a nie
stałego) bitrate na przestrzeni całego filmu, zalecana
jest kompresja dwuprzebiegowa. Aby dostosować parametry
kompresji jednoprzebiegowej klikamy more... - patrz punkt III.
Twopass - 1st pass - pierwszy przebieg kompresji
dwuprzebiegowej. Służy on do analizy materiału źródłowego
pod kątem kompresowalności każdej klatki. Informacje te są
zapisywane do pliku statystyk. Pod przyciskiem more...
kryją się opcje pierwszego przebiegu - patrz punkt IV.
Twopass - 2nd pass - drugi przebieg kompresji
dwuprzebiegowej. Korzysta on z pliku statystyk zapisanego podczas
pierwszego przebiegu (co daje mu całościowe spojrzenie na
materiał źródłowy) aby optymalnie rozłożyć dostępne bity
w całym pliku wynikowym. Przyciskiem po lewej stronie musimy
wybrać target bitrate (średni bitrate wyrażony w
kilobitach na sekundę) lub target size (docelowy rozmiar
pliku wynikowego wyrażony w kilobajtach), zaś w pole tekstwoe
należy wpisać stosowną wartość lub wybrać ją przy pomocy
suwaka. Przycisk more... udostępnia opcje drugiego
przebiegu - patrz punkt V.
3. przycisk calc... wywołuje kalkulator bitrate.
Patrz punkt IX.
4. sekcja Zones Add dodaje kolejną
strefę do listy. Remove usuwa strefę z listy. Zone
Options... umożliwia dostosowanie parametrów strefy, która
jest aktualnie zaznaczona na liście. Patrz punkt VI.
5. Advanced Options... wywołuje okno
umożliwające dostosowanie zaawansowanych opcji poszukiwania
ruchu i kwantyzacji. Patrz punkt VII.
6. Load Defaults resetuje ustawienia kodeka
do domyślnych czyszcząc wszystkie związane z nimi wpisy w
rejestrze.
7. Decoder Options wywołuje okno
umożliwające zmianę ustawień dekodera Video for Windows. Patrz punkt VIII.
8. OK zatwierdza wszystkie zmiany dokonane w
ustawieniach kodeka i zamyka główne okno jego konfiguracji.
II - okno Profile @ Level
A. - zakładka Profile

Ustawienia, które wybierzemy w tej zakładce mają duży wpływ
na jakość obrazu, ale jeśli zamierzamy odtwarzać film przy
pomocy odtwarzacza stacjonarnego, musimy ograniczyć ich użycie
wybierając z listy rozwijanej Profile @ Level profil
obsługiwany przez ten odtwarzacz.
Quantization type - wybór rodzaju kwantyzacji. H.263
wygładza obraz i nadaje się do kompresji z niskim bitrate,
podczas gdy MPEG zachowuje ostrość obrazu przy wysokim bitrate.
MPEG-Custom to kwantyzacja typu MPEG, lecz z
możliwością użycia dowolnej matrycy kwantyzacji (innej, niż
domyślna). Istnieją matryce dla poszczególnych rodzajów
źródeł oraz dla różnych bitrate, dobór matrycy
odpowiedniej do sytuacji należy oprzeć na własnym
doświadczeniu. Przycisk Edit Matrix... otwiera okno
edycji matrycy, w którym możemy własnoręcznie modyfikować
poszczególne współczynniki matrycy, zapisać zmodyfikowaną
matrycę do pliku przy pomocy przycisku Save Matrix... lub
załadować inną matrycę z pliku przyciskiem Load Matrix....
Adaptive Quantization oszczędza bity zwiększając
kwantyzator makrobloków w bardzo jasnych i bardzo ciemnych
obszarach. Maksymalne odchylenie kwantyzatora makrobloku od
kwantyzatora całej klatki wynosi 2. Interlaced Encoding -
kompresja z zachowaniem przeplotu występującego w materiale
źródłowym. Należy pamiętać, że użycie tej opcji ma sens tylko,
gdy źródło zawiera przeplot a jego rozdzielczość pionowa nie
była zmieniana. Opcję Top field first zaznaczamy, gdy
półobraz górny wyprzedza dolny w czasie. Odznaczamy ją, gdy
wcześniejszą pozycję w czasie ma półobraz dolny. Quarter
Pixel znajduje i opisuje wektory ruchu z dokładnością do 1/4
piksela, co pomaga w lepszym odwzorowaniu ruchu. Wyższa precyzja
wektorów wymaga zużycia większej ilości bitów do ich zapisu,
natomiast nie można przewidzieć, czy ta strata zostanie
wyrównana dzięki zmniejszeniu objętości informacji o
teksturze obrazu. Użycie tej opcji zauważalnie spowalnia
kompresję i może spowodować niezgodność pliku wynikowego z
niektórymi istniejącymi dekoderami sprzętowymi obecnymi w
popularnych odtwarzaczach stacjonarnych (dotyczy to wielu
spośród odtwarzaczy certyfikowanych przez DivX Networks).
Global Motion Compensation - globalna kompensacja ruchu.
Funkcja ta opisuje ruch całej klatki w stosunku do poprzedniej
klatki przy pomocy tzw. "punktów zakrzywienia" (ang. warppoints).
Są to wektory ruchu opisujące przesunięcie poszczególnych
rogów obrazu, co pomaga opisać kadrowanie, zbliżenia i obroty.
XviD używa ich maksymalnie trzech punktów zakrzywienia.
Podobnie, jak w przypadku Quarter Pixela, użycie GMC
zauważalnie spowalnia kompresję i może spowodować
niezgodność pliku wynikowego z niektórymi istniejącymi
dekoderami sprzętowymi obecnymi w odtwarzaczach stacjonarnych. B-VOPs
- klatki typu B, czyli odwołujące się zarówno do
poprzedniej, jak i do następnej klatki. Dzięki posiadaniu
dwóch klatek referencyjnych oraz temu, że żadna klatka nie
odwołuje się do klatki typu B, klatka taka może
wyglądać równie dobrze, jak klatka typu P pomimo
wyższego kwantyzatora. W ten sposób użycie klatek typu B
może oszczędzić wiele bitów. W polu Max consecutive BVOPs
określamy maksymalną ilość klatek typu B, które mogą
następować po sobie (nie zaleca się stosowania wartości
większych, niż 3). Pola Quantizer ratio i Quantizer
offset zawierają odpowiednio mnożnik (oznaczmy go M) i
przesunięcie (P) kwantyzatora klatki typu B. Jest on
obliczany według wzoru [Q*M+P], gdzie Q oznacza średnią
arytmetyczną kwantyzatorów poprzedniej i następnej klatki
referencyjnej. Packed bitstream to specjalny sposób
zapisu klatek typu B w strumieniu wideo wprowadzony
pierwotnie przez DivX Networks w celu obejścia
problemów związanych z ich obsługą w kontenerze *.avi
oraz architekturze multimedialnej Video for Windows (oba
standardy teoretycznie nie dopuszczają użycia klatek w
kolejności innej, niż kolejność odtwarzania, a tak właśnie
zapisuje się klatki typu B). Bez Packed bitstream
sekwencja klatek PBBP jest
zapisywana w pliku w postaci PPBB, ponieważ
do zdekodowania klatek typu B konieczne
jest zdekodowanie obu klatek typu P (tej
poprzedzającej i tej następującej) - dlatego klatki są
zapisane w strumieniu wideo w kolejności dekodowania, a nie w
kolejności wyświetlania. Zaznaczenie opcji Packed bitstream
spowoduje zapisanie tej sekwencji klatek w postaci PPBBN, gdzie N jest klatką
typu N o znaczniku czasu identycznym jak druga
klatka P. W przypadku zastosowania kontenera
innego niż *.avi (np. *.mp4 lub Matroska) Packed
bitstream nie jest potrzebny. Niektóre dekodery programowe (np.
wersje ffdshow sprzed roku 2004) i sprzętowe mają
kłopoty z dekodowaniem sekwencji dwóch lub więcej kolejnych
klatek typu B, gdy plik skompresowano z użyciem Packed
bitstream, zatem zalecane jest odznaczenie tej opcji.
B. - zakładka Level

W tej zakładce nie mamy do dyspozycji żadnych ustawień oprócz
Profile @ Level, możemy za to zapoznać się w niej z
wartościami parametrów VBV dla wybranego profilu i
poziomu. Suggested - maksymalna szerokość, wysokość i
ilość klatek na sekundę (FPS) dopuszczane przez dany profil i
poziom. Max frame size (macroblocks) - maksymalny rozmiar
klatki wyrażony w makroblokach. Wymuszenie przestrzegania tej
wartości jest w standardzie MPEG-4 określane mianem Video
Memory Verifier (VMV). Ma to zapobiec przepełnieniu
pamięci wideo (można ją porównać do pamięci RAM obecnej w
karcie graficznej komputera) podczas odtwarzania. W
przeciwieństwie do bufora dekodera (który przechowuje fragment
strumienia wideo przed jego dekompresją), pamięć wideo
służy do przechowywania zdekodowanych klatek. XviD
nie wymusi maksymalnej dopuszczonej rozdzielczości klatki,
ponieważ nie zawiera wbudowanych filtrów zmiany rozdzielczości
- w tym celu należy wykorzystać filtry dostępne w programie
kompresującym. Max processing rate (mbs/sec) - maksymalna
ilość makrobloków występujących w jednej sekundzie filmu.
Jest to wartość Max frame size pomnożona przez
maksymalną wartość FPS. Mechanizm ograniczający tą wartość
jest nazywany Video Complexity Verifier (VCV). XviD
nie wymusi przestrzegania tej wartości, ponieważ nie posiada
wbudowanych filtrów zmiany rozdzielczości, zaś zmiana
wartości FPS w architekturze Video for Windows jest
niemożliwa. Max buffer size (bits) - rozmiar bufora
dekodera w bitach. Podczas drugiego przebiegu kompresji
dwuprzebiegowej algorytm VBV zadba, aby żaden fragment
strumienia wideo swoją objętością nie przekroczył tej
wartości. Dzięki temu plik wideo zostanie poprawnie odtworzony
przez każdy dekoder zgodny z wybranym profilem i poziomem
standardu MPEG-4. Max bitrate (kbps) - maksymalna
wartość bitrate dopuszczona przez dany profil i poziom
standardu MPEG-4. Podobnie, jak w przypadku Max buffer
size, również tutaj o przestrzeganie tej wartości zadba VBV
(tylko podczas drugiego przebiegu kompresji dwuprzebiegowej).
C. - zakładka Aspect Ratio

W tej zakładce określamy stosunek boków filmu, który zostanie
przywrócony podczas odtwarzania. Opcje te są przeznaczone
dla zaawansowanych użytkowników, którzy rozumieją zasady
działania kompresji anamorficznej. Pixel Aspect Ratio
- stosunek boków piksela. Zarówno płyty VCD, jak i DVD
używają pikseli, które nie są kwadratowe, więc jeśli chcemy
zachować pełną rozdzielczość takiego źródła (ewentualnie
tylko obciąć czarne pasy), wybieramy z listy rozwijanej
pozycję odpowiednią do systemu telewizyjnego naszego źródła
(PAL lub NTSC) oraz do jego anamorfizmu (16:9
dla anamorficznej płyty DVD, 4:3 dla nieanamorficznej).
Jeśli materiał źródłowy używa kwadratowych pikseli lub
przywróciliśmy prawidłowy stosunek boków filmu zmieniając
jego rozdzielczość, to pozostawiamy Square (default) Dla
materiałów źródłowych o nietypowym stosunku boków piksela
możemy wybrać Custom... i określić ten stosunek "ręcznie"
wpisując odpowiednie wartości w pola X (szerokość
piksela) oraz Y (wysokość piksela). Picture Aspect
Ratio - stosunek boków obrazu. Stosujemy, jeśli zamiast
stosunku boków piksela wolimy umieścić w strumieniu wideo
informację o stosunku boków obrazu, który ma zostać
przywrócony przez dekoder podczas odtwarzania. Mamy do
dyspozycji trzy predefiniowane ustawienia (4:3, 16:9
i 2.35:1), które ładujemy za pomocą odpowiedniego
przycisku. Możemy też "ręcznie" określić stosunek
boków obrazu wpisując odpowiednie wartości w pola X (szerokość
obrazu) oraz Y (wysokość obrazu).
III - okno CBR

Reaction Delay Factor - określa opóźnienie reakcji
kodeka na zmianę wymagań sceny. Podczas kompresji ze stałą
wartością bitrate kodek oblicza ilość bitów, którą
przydzieli następnej klatce posługując się średnią
arytmetyczną wielkości poprzednich klatek. RDF określa,
ile klatek kodek weźmie pod uwagę w tych obliczeniach. Averaging
period pełni podobną rolę do RDF, lecz operuje na
kwantyzatorach. Kodek oblicza średnią arytmetyczną
kwantyzatorów poprzednich klatek i przyjmuje ją za kwantyzator
następnej klatki. Wartość Averaging period to ilość
klatek uwzględnianych do obliczenia tej średniej. Smoother
to wartość używana do (jak sama nazwa wskazuje) dynamicznego
"wygładzania" krzywej bitrate podczas kompresji
(pomimo,że kompresujemy ze stałym bitrate, krzywa ta nie
jest całkiem płaska). Kodek przy każdej klatce oblicza
wartość dewiacji (czyli różnicę pomiędzy objętością tej
klatki a średnią arytmetyczną objętości klatek
skompresowanych do tej pory). Wartość dewiacji podzielona przez
wartość Smoother nazywana jest nadmiarem i oznacz (w
dużym uproszczeniu) ilość bitów, którą dodajemy (dodatnia
wartość nadmiaru) lub usuwamy (ujemna wartość nadmiaru) z
danej klatki. Niższa wartość wpisana w polu Smoother
powoduje silniejsze "wygładzanie".
Wszystkie opcje dostępne w tym oknie mają wpływ tylko na
kompresję jednoprzebiegową ze stałym bitrate (target
bitrate). Kompresja jednoprzebiegowa ze stałym kwantyzatorem
(target quantizer) nie stosuje żadnej kontroli bitrate.
Zaleca się pozostawienie wartości domyślnych dla wszystkich
opcji dostępnych w tym oknie.
IV - okno 1st Pass

Stats filename - nazwa i lokalizacja pliku statystyk,
który zostanie zapisany. Full quality first pass włącza
wszystkie mechanizmy kompresji (głównie dodatkowe algorytmy
poszukiwania ruchu), które podczas "zwykłego"
pierwszego przebiegu są wyłączone. Użycie pierwszego
przebiegu pełnej jakości ma sens tylko, gdy chcemy zatrzymać
utworzony podczas niego plik wideo (w tym celu musimy też
odznaczyć Discard first pass). Domyślny ("szybki")
pierwszy przebieg został zoptymalizowany pod kątem analizy
materiału źródłowego, a nie kompresji właściwej, dlatego
wyeliminowano z niego wszelkie procedury, których wpływ na
dokładność tej analizy (a więc również na jakośc pliku
tworzonego w trakcie drugiego przebiegu) był nieistotny. Discard
first pass powoduje, że podczas pierwszego przebiegu nie
jest tworzony plik wideo. Warto zaznaczyć tę opcję, gdy
odznaczyliśmy Full quality first pass - gdy nie używamy
pierwszego przebiegu pełnej jakości, plik wideo tworzony przez
pierwszy przebieg może być niezgodny ze standardem MPEG-4
lub nawet niezdatny do użytku.
V - okno 2nd Pass

Stats filename - nazwa i lokalizacja pliku statystyk,
który został zapisany podczas pierwszego przebiegu. Konieczne
jest użycie pliku z pierwszego przebiegu wykonanego z użyciem
tego samego materiału źródłowego. I-frame boost (%) -
"doinwestowanie" klatek typu I określonym
odsetkiem bitów. Domyślna wartość 10 zwiększa o 10%
ilość bitów, które zostały przydzielone klatce przez
algorytm kontroli bitrate. I-frames closer than ... (frames)
- jeżeli klatki kluczowe (typu I) sąsiadują ze sobą,
korzystne może być zmniejszenie bitrate ich wszystkich z
wyjątkiem ostatniej. Ta opcja to ilość klatek delta (tzn.
klatek typów innych niżI), które muszą znajdować się
pomiędzy klatkami typu I, aby nie zostały one
uznane za "sąsiadujące"....are reduced by(%) -
redukuje bitrate dla wszystkich "sąsiadujących"
klatek typu I oprócz ostatniej w sekwencji. Overflow
control strength (%) - "agresywność" algorytmu
kontroli nadmiaru (czyli różnicy ilości bitów przydzielonych
danej klatce od ilości bitów, którą należałoby jej
przydzielić aby uzyskać żądany bitrate). Ustawienie 0
nie wpływa na decyzje kodeka. Każda wyższa wartość zwiększy
precyzję osiągnięcia rozmiaru pliku wynikowego (poprzez
zwiększenie częstości interwencji algorytmu kontroli nadmiaru),
ale jednocześnie naruszy dystrybucję kwantyzatorów. Max
overflow improvement (%) - określa, ile procent (maksymalnie)
kodek może dodać do klatki, gdy jej aktualny rozmiar jest
poniżej wymaganego (tzn. takiego, który daje prawidłowy
rozmiar pliku wynikowego). Mechanizm ten bezpośrednio wpływa na
kwantyzator danej klatki. Wyższa wartość lepiej zabezpieczy
nas przed za małym plikiem wynikowym, ale jednocześnie naruszy
dystrybuję kwantyzatorów. Max overflow degradation (%) -
określa, ile procent (maksymalnie) kodek może odebrać klatce,
gdy jej aktualny rozmiar jest powyżej wymaganego (tzn. takiego,
który daje prawidłowy rozmiar pliku wynikowego). Mechanizm ten
bezpośrednio wpływa na kwantyzator danej klatki. Wyższa
wartość lepiej zabezpieczy nas przed za dużym plikiem
wynikowym, ale jednocześnie naruszy dystrybuję kwantyzatorów. High
bitrate scenes degradation (%) - procent degradacji scen z
wysokim bitrate. Podany odsetek bitów zostanie odebrany
scenom o wysokim bitrate. Następnie bity te zostaną
równo rozdzielone pomiędzy wszystkie klatki filmu. Low
bitrate scenes improvement (%) - procent "doinwestowania"
scen z niskim bitrate. Obliczona zostanie ilość bitów
stanowiąca podany odsetek bitów przydzielonych scenom o niskim bitrate.
Ta ilość bitów zostanie odebrana wszystkim klatkom filmu, a
następnie bity te zostaną dodane do scen o niskim bitrate.
Zaleca się pozostawienie wartości domyślnych dla wszystkich
opcji dostępnych w tym oknie.
VI - okno Zone

Start frame # - numer początkowej klatki strefy. Rate
control - wybór sposobu kontroli ilości bitów
przydzielanej danej strefie. Zaznaczenie opcji Weight
spowoduje, że kodek pomnoży ilość bitów obliczoną dla tej
sceny przez "zwykły" algorytm kontroli bitrate
przez wartość z pola tekstowego Weight (np. gdy w pole Weight
wpiszemy 0.50, tej strefie przydzielona zostanie tylko
połowa ilości bitów, jaką wybrałby dla niej kodek bez
ingerencji użytkownika). Wybór opcji Quantizer spowoduje
skompresowanie całej strefy ze stałym kwantyzatorem podanym w
polu tekstowym po prawej stronie (kwantyzator dla klatek typu B
zostanie obliczony tak, jak w opisie opcji B-VOPs).
Wartość Weight lub Quantizer można zmieniać
również przy pomocy suwaka w sekcji Rate control. Begin
with keyframe wymusza rozpoczęcie strefy przy pomocy klatki
typu I. Zalecane, gdy poprzednia strefa używa innego
ustawienia Greyscale encoding, niż aktualna. Greyscale
encoding odrzuca wszystkie informacje o kolorze (całą
płaszczyznę chrominancji) podczas kompresji. Obraz jest
zapisywany jako czarno-biały (tzn. tylko w postaci informacji o
jasności - płaszczyzna luminancji). Jeśli to ustawienie w
aktualnej strefie jest inne, niż w poprzedniej, zalecane jest
zaznaczenie Begin with keyframe. Chroma optimizer
enabled włącza filtr, który rozmazuje kolor w obszarach, w
których jest on niewidoczny (bardzo jasnych i bardzo ciemnych).
Ułatwia to korzystną kompresję tych obszarów. Cartoon Mode
zmniejsza czułość procesu detekcji ruchu na bardzo małe
zmiany obrazu, które nie występują w obrazie tradycyjnych
filmów animowanych. Pomaga to min. wyeliminować z kreskówek
tzw. "szum" (zniekształcenia nie należące do
pierwotnego obrazu), który zużyłby niepotrzebnie dużą
ilość bitów. BVOP sensitivity - czułość algorytmu
wstawiania klatek typu B. XviD decyduje o użyciu
klatki typu B w zależności od złożoności sceny -
stara się umieścić je tam, gdzie jest to najkorzystniejsze.
Niższe wartości sprawiają, że kodek rzadziej podejmuje
decyzję o wstawieniu klatki typu B, wyższe wartości
powodują odwrotny efekt. Należy pamiętać, że żadna
sekwencja klatek typu B nie będzie dłuższa od wartości
Max consecutive BVOPs bez względu na wartość BVOP
sensitivity.
VII - okno Advanced Options...
A. - zakładka Motion

Motion Search Precision - precyzja poszukiwania ruchu.
Ustawienie 0 - None wcale nie szuka ruchu, lecz używa
samych klatek typu I. Ustawienia od 1 do 4
szukaja i opisują ruch przy pomocy wektorów opisujących
przesunięcie całego makrobloku 16x16, ustawienia 5 i 6
dodatkowo potrafią opisać ruch przy pomocy osobnych wektorów
dla każdego bloku 8x8. Zaleca się pozostawienie ustawienia
domyślnego 6 - Ultra High. VHQ mode - wybór trybu
VHQ (Vastly Hyped Quality). VHQ to dodatkowy
proces poszukiwania ruchu. W przeciwieństwie do głównego
algorytmu detekcji ruchu (tego, którego precyzję określamy
ustawieniem Motion Search Precision), VHQ wybiera
taki wariant opisu ruchu, który jest najkorzystniejszy z punktu
widzenia rate-distortion (tzn. taki, dla którego suma
zużytych bitów i strat jakości jest najmniejsza). VHQ=1
to zastosowanie rate-distortion tylko do podjęcia decyzji
o trybie makrobloku (INTRA - zapis pełnej informacji o
obrazie, INTER - kompensacja ruchu z użyciem jednego
wektora ruchu dla całego makrobloku, INTER4V -
kompensacja ruchu z użyciem osobnego wektora ruchu dla każdego
z czterech bloków). Wyższe wartości VHQ dodatkowo
poszukują optymalnych wektorów ruchu. Wyłączenie VHQ
nie jest zalecane. Zwiększanie wartości VHQ spowolni
kompresję, ale da wyższą jakość. Tryby VHQ z listy
rozwijanej VHQ mode działają tylko dla klatek typu P.
Use VHQ for bframes too uruchamia VHQ dla klatek
typu B. W przypadku klatek typu B istnieje tylko
jeden tryb VHQ - odpowiednik VHQ=1 dla klatek typu P
(dla klatek tpu B są do wyboru cztery tryby makrobloku: FORWARD
- skompensowany na podstawie przyszłej klatki, BACKWARD -
skompensowany na podstawie przeszłej klatki, INTERPOLATE
- interpolowany na podstawie obu kompensacji oraz DIRECT -
podobnie jak INTERPOLATE, lecz wektory ruchu nie są
zapisywane, a obliczane zakładając liniowy ruch obiektów). Use
chroma motion - użycie informacji o kolorze (płaszczyzny
chrominancji) w procesie poszukiwania ruchu. Bez zaznaczenia tej
opcji kodek będzie wykrywał ruch tylko w płaszczyźnie
luminancji (tzn. informacji o jasności obrazu). Zaznaczenie Use
chroma motion jest zalecane. Turbo ;-) przyspiesza
procedury poszukiwania ruchu związane z Quarter Pixelem i
klatkami typu B podczas drugiego przebiegu. Bez użycia
żadnej z wyżej wymienionych opcji, zaznaczenie Turbo ;-)
nie daje żadnego efektu. Frame drop ratio - agresywność
algorytmu wykrywania duplikatów (identycznych klatek). Jeśli
klatka zostanie uznana za identyczną z poprzednią, zostanie ona
zapisana jako klatka typu N, czyli w postaci informacji
dla dekodera aby powtórzył poprzednią klatkę. Wartość 0
nie porzuca żadnych klatek, wyższe wartości powodują, że
kodek łatwiej uznaje klatkę za duplikat i ją porzuca. Funkcja
ta może być użyteczna dla filmów animowanych tworzonych z
niską ilością klatek na sekundę (np. 12 FPS), w których
klatki zostały zduplikowane, aby przystosować je do emisji w
telewizji lub w kinie. W przypadku pozostałych filmów zaleca
się pozostawienie wartości 0. Maximum I-frame
interval - maksymalna dozwolona ilość klatek delta (tzn.
klatek typów różnych od I) pomiędzy dwoma klatkami
typu I. Zalecana wartość to 10*FPS, gdzie FPS to ilość
klatek na sekundę w materiale źródłowym. Należy wiedzieć,
że kodek wstawia klatki typu I również wtedy, gdy
wykryje zmianę sceny - jest to najkorzystniejsze dla kompresji.
B. - zakładka Quantization

Min I-frame quantizer - minimalny dozwolony kwantyzator
dla klatki typu I. Max I-frame quantizer -
maksymalny dozwolony kwantyzator dla klatki typu I. Min
P-frame quantizer - minimalny dozwolony kwantyzator dla
klatki typu P. Max P-frame quantizer - maksymalny
dozwolony kwantyzator dla klatki typu P. Min B-frame
quantizer - minimalny dozwolony kwantyzator dla klatki typu B.
Max B-frame quantizer - maksymalny dozwolony kwantyzator
dla klatki typu B. Trellis quantization - użycie
podczas kompresji algorytmu Trellis. Algorytm ten stosuje
obliczenia typu rate-distortion (patrz też VHQ)
aby znaleźć optymalny wariant kwantyzacji.
Zaleca się pozostawienie wartości domyślnych dla wszystkich
opcji dostępnych w tym oknie.
C. - zakładka Debug

Performance optimizations - optymalizacje wydajności.
Opcja Automatically detect optimizations spowoduje, że
kodek sam wykryje dostępne instrukcje procesora. Opcja Force
optimizations pozwala nam na ręczny wybór zestawów
instrukcji procesora, których chcemy użyć podczas kompresji. Zaleca
się pozostawienie domyślnych ustawień. Number of
threads - ilość wątków, których kodek użyje podczas
kompresji. Opcja dostępna tylko w komputerach wieloprocesorowych
lub na procesorach obsługujących wielowątkowość (tzw.
hiperwątkowych). FourCC used - znacznik FourCC (ang.
four character code), który zostanie umieszczony w pliku
wynikowym. Słuzy on do identyfikacji kodeka, którego użyto do
kompresji. Zalecane jest pozostawienie XVID, z wyjątkiem
sytuacji, w której chcemy odtworzyć film na odtwarzaczu
stacjonarnym rozpoznającym tylko znacznik DIVX. OutputDebugString
debug level - liczba oznaczająca poziom ilości oraz
szczegółowości informacji przekazywanych podczas kompresji z
kodeka do debuggera. Użyteczne tylko dla programistów
analizujących działanie kodeka w celu wykrycia i naprawienia
ewentualnych błędów. Zaleca się pozostawienie wartości
domyślnej. Print debug info on each frame nakłada na
każdą klatkę w pliku wynikowym informacje dla programistów
analizujących działanie kodeka w celu wykrycia i naprawienia
ewentualnych błędów. Zaleca się pozostawienie wartości
domyślnej. Display encoding status - wyświetla podczas
kompresji okno ukazujace jej aktualny stan, tzn. używane
kwantyzatory i typy klatek.
VIII - okno Decoder Options.

Tutaj możemy dostosować konfigrację dekodera architektury Video
for Windows. Jest on używany przez programy kompresujące
takie, jak VirtualDub(Mod) do dekompresji
materiału źródłowego skompresowanego XviDem.
Modyfiklacja tych ustawień wpłynie również na analogiczne
ustawienia dekodera architektury DirectShow, lecz są
to dwa różne dekodery. Modyfikacja tych ustawień nie ma
wpływu na kompresję. Brightness - suwak
umożliwiający zmianę jasności obrazu (przesunięcie go w lewo
ściemnia obraz, przesunięcie w prawo rozjaśnia). Deblocking
Y usuwa z obrazu "efekt blokowiska" (powstający
wskutek przydzielenia scenie niewstarczającej ilości bitów).
Przetwarza informacje o jasności obrazu (płaszczyznę
luminancji). Deblocking UV usuwa z obrazu "efekt
blokowiska" (powstający wskutek przydzielenia scenie
niewstarczającej ilości bitów). Przetwarza informacje o
kolorze obrazu (płaszczyznę chrominancji). Deringing Y
usuwa z obrazu "moskity", czyli obwódki wokół
krawędzi (powstające wskutek przydzielenia scenie
niewstarczającej ilości bitów). Przetwarza informacje o
jasności obrazu (płaszczyznę luminancji). Deringing UV
usuwa z obrazu "moskity", czyli obwódki wokół
krawędzi (powstające wskutek przydzielenia scenie
niewstarczającej ilości bitów). Przetwarza informacje o
kolorze obrazu (płaszczyznę chrominancji). Film Effect -
efekt obrazu kinowego. Dodaje do obrazu "szum", co
zwiększa jego ziarnistość i upodabnia go do obrazu
wyświetlanego z taśmy filmowej. Przydatne, gdy używamy jednej
lub kilku z powyżej opisanych metod usuwania artefaktów
kompresji z filmu - dodanie "ziarna" do filmu niweluje
efekt nadmiernego wygładzenia obrazu powstającego wskutek deblockingu
i deringingu.
IX - okno Bitrate Calculator.

Target size (kbytes) - tu podajemy docelowy rozmiar pliku
z filmem (razem z dźwiękiem). Subtitles (kbytes)
- rozmiar pliku z napisami. Możemy go wpisać w pole tekstowe
lub uzyskać poprzez otwarcie pliku z napisami przyciskiem [...]
umieszczonym po prawej stronie. Container - cechy
kontenera multimedialnego, w którym umieścimy nasz film. Jego
rodzaj wybieramy z listy Format, na której do wyboru mamy
AVI-Legacy (starsza wersja kontenera *.avi, tzw. AVI
1.0), AVI-OpenDML (nowsza wersja kontenera *.avi,
tzw. AVI 2.0), Matroska (pliki *.mkv), OGM
(kontener Ogg Media, pliki *.ogm) oraz (None)
(brak rezerwacji miejsca na dane struktury kontenera). Kontener
multimedialny to pojemnik przechowujący strumienie obrazu,
dźwięku, napisów, menu, informacje o filmie i inne dodatki w
jednym pliku; musimy podać tu prawidłową nazwę kontenera, aby
kalkulator mógł uwzględnić ilość bitów używanych przez
dany kontener do zapisu swoich własnych danych (ang. container
overhead). W polu Overhead (kbytes) ukaże się
ilość kilobajtów, którą trzeba zarezerwować na dane
struktury kontenera multimedialnego. Ta wartość nie podlega
modyfikacji - kalkulator sam ją dobiera na podstawie kontenera
wybranego z listy Format. Video - sekcja, w której
określamy czas trwania filmu i ilość klatek na sekundę.
Wypełniamy pola hours (godziny), minutes (minuty)
i seconds (sekundy), zaś z listy frames per second
wybieramy ilość klatek na sekundę (FPS) naszego filmu. W polu Size
(kbytes) otrzymamy rozmiar wynikowego strumienia wideo w
kilobajtach, zaś w polu Average bitrate średni bitrate
wyrażony w kilobitach na sekundę. Audio - sekcja, w
której określamy cechy strumienia dźwięku, którego użyjemy
w naszym filmie. Z listy Format wybieramy format kompresji
dźwięku. W polu Average bitrate podajemy średni bitrate
dźwięku w kilobitach na sekundę. W polu Size (kbytes)
umieszczamy rozmiar pliku z dźwiękiem - możemy go wpisać w
pole tekstowe lub uzyskać poprzez otwarcie pliku z dźwiękiem
przyciskiem [...] umieszczonym po prawej stronie.
Artykuł dostępny jest również w formie dokumentu PDF
Aby ściągnąć plik skorzystaj z menu kontekstowego myszy i opcji Zapisz element docelowy jako... |