-Klikamy start -> programy -> ffdshow -> ffdshow video decoder

Poniżej znajduje się widok okna konfiguracji ffdshow:

Codecs - to to co ffdshow ma nam odtwarzać i czym.
Do wyboru mamy na ogół "disabled" - wyłączony i libAVcodec, a czasem libmpeg2 (mpeg1/2) lub XviD1 (xvid, divx4/5 i inne mpeg4). Warto zaznaczyć divxy, xvida i mjpeg (libavcodec)

Image settings - w tym miejscu kryją się profile ustawień ffdshow.

W tym oknie możemy stworzyć ustawić lub załadować określone presety,
czyli profile ustawień. Standardowo mamy profil default.

Postprocessing - czyli usuwanie artefaktów kompresji.

Postprocessingiem nazywamy zbiór filtrów przetwarzających zdekodowany juz obraz
w celu usunięcia widocznych niedoskonałości wynikających z metody zapisu danych o obrazie.

Są dwa rodzaje filtrów:
Deblocking - czyli usuwanie "kwadratów". Kodeki takie jak mpeg 2 lub 4
dzielą obraz na "bloki" o wymiarach 16x16 pikseli
(mpeg4/xvid również 8x8, a H.264 dodatkowo 4x4 oraz mieszane 16x8 i 8x4).
Ponieważ informacje o obrazie są zapisane właśnie w taki nieciągły sposób
na granicach bloków pojawiają się nieciągłości w przejściach tonalnych -
- brzegi bloków są źle spasowane co objawia się właśnie powstawaniem kwadratów.
Deblocking inteligentnie wygładza brzegi sąsiednich bloków.
Deringing - czyli usuwanie "aureolek" szczególnie widocznych przy ostrych krawędziach.
Powstaja one w wyniku usunięcia składowych o wyższych częstotliwościach z obrazu.
Deringing niweluje powstawanie tych aureolek.

Po lewej stronie widać przykład bloków (1:1),
a po prawej powiększony 4x obraz "aureolek"
dookoła ostrych krawędzi.

Filtry te wymagają mocnego procesora - pełny postprocessing zajmuje procesorowi
ponad dwa razy więcej czasu niż samo zdekodowanie wideo!
Dlatego też przy procesorach poniżej 500 MHz nie ma sensu go włączać
i dlatego tez został on podzielony na "mniejsze kawałki",
a mianowicie rozdzielono operacje na luminacji (jasność) i chrominacji (kolor),
oraz w przypadku deblockingu rozdzielono jeszcze działanie filtra na deblocking
w poziomie i w pionie.

Jak ustawić postprocessing?

Najpierw zaznaczamy ptaszek "v" po lewej lub na górze włączając postprocessing.
(warto zauważyć w tym białym oknie po lewej małe strzałki góra/dół -
- umożliwiają one ustawienie kolejności filtrów).

Potem przesuwamy "suwak" do oporu w prawo i zaznaczamy "Automatic quality control"
- wtedy gdy użycie procesora dojdzie do 100% zostaną wyłączone te etapy,
na które nie ma czasu. W ten sposób zachowujemy płynność odtwarzania filmu
nawet jak rosnący bitrate zapcha nam procesor w 100%. Można też wtedy robić cos w tle,
np. rozpakowywać duży plik, albo nawet kompresować film


Obok wyżej wspomnianego suwaka mamy ustawienia "custom"
Jeśli ktoś np. nie lubi "rozmywać" kolorów (chroma) to tu może to ustawić.
(oczywiście i tak większość ludzi nie będzie widziała różnicy
- ludzkie oko słabiej reaguje na kolory niż na jasność)

Jako metodę postrocessingu polecam Nic'a z progami ustawionymi defaultowo (X=20; Y=40).
Im niższe te wartości, tym w większym stopniu usuwane są artefakty komporesji.

Godny polecenia jest też postprocessing mplayera, który posiada "level fix"
czyli rozjaśnianie ciemnych scen.
Istnieje możliwość włączenia jednocześnie postprocessingu mplayera i Nic'a,
chociaż nie wiem jaki ma to wpływ na dekodowane wideo,
nie wiem jak to wtedy działa i czy ma to sens.


SPP deblocking jest strasznie procesorożerne,
w nowszych wersjach ffdshow jest też wersja "fast",
oraz soft treshold - oznacza to że granica,
przy której zaczyna działać ten filtr albo jest płynna,
albo w jej okolicach deblocking ma mnijeszą siłę.


Sharpen - wyostrzanie.

Sharpen to filtry wyostrzające. Przydają się one przy TV-out do wyostrzania obrazu.
Nie każdy lubi ich używać (ja ich nie lubię, więc jest to opcja.
Włączamy je tak samo czyli "v" po lewej przy odpowiedniej zakładce, lub w samej zakładce.

Pierwsze cztery (chociaż nie dam głowy, nie przyglądałem im się zbyt długo)
działają na zasadzie podbijania wyższych częstotliwości obrazu z opcjonalnym
uwzględnieniem niewyostrzania krawędzi bloku, lub pokazania tylko maski
- samych krawędzi, które będą wyostrzane. Są one opisane na dole okna (po angielsku),
więc nie będą pisał jak działają, powiem tylko, że w moim odczuciu powodują one
powstawanie biało-czarnych (lub ciemniejszo-jaśniejszych przy słabszej sile filtra)
obwódek dookoła obiektów i krawędzi.A obraz jest dalej nieostry,
tzn przejście od obiektu A do obiektu B przy przeskalowaniu na pełny ekran,
albo na TV dalej ma 5 pikseli szerokości, tylko skok (kontrast) między kolorami jest większy.
Dodam że telewizor sam od siebie doda takie czarno-białe obwódki...

Natomiast ostatni filtr wyostrzający swscaler przypadł mi do gustu.
Nie zwiększa on lokalnego kontrastu między obiektami, ale wyrównuje poziomy,
aż do powstania ostrego progu. Nie jest on idealny, nie odtworzy oryginalnego obrazu,
działa przy dużej sile filtra (suwak do oporu w prawo), ale IMHO do tv-out jest najlepszy.

Powyżej powiększone 4x obrazki pokazujące film bez wyostrzania, z swscaler i unsharp mask.
Unsharp mask został ustawiony na wartość wyostrzania większą niż powinien być,
po to aby lepiej ukazać jego działanie.
Wprawdzie w powiekszeniu 1:1 wygląda to ok,
ale skalując film na pełny ekran już nie za bardzo...
Najlepiej niech każdy z Was poszuka sobie sam
odpowiedniego dla siebie filtra i ustawień.


Subtitles - napisy

Mamy do wyboru albo podać katalog(i) z napisami
( "." - ten sam co film, po średniku wypisujemy inne katalogi), albo podać "na sztywno"
plik z napisami, co jest przydatne przy wrenderowywaniu napisów na stałe
za pomocą ffdshow video codec, (który w wersji ffds 2004.10.12 nie działa),
lub przy użyciu avisyntha i DirectShowSource.

Opcja heuristic search pozwala zgadnąć które napisy pasują do danego filmu,
jesli plik z nimi nazywa się inaczej, ale wadą tego rozwiązania jest,
że w przypadku braku napisów ffdshow załaduje nam byleco

Accept embeded subtitles - wyświetlanie napisów wmuxowanych
w plik (np. *.mp4 *.mkv itp.)

Ustawienie napisów: najlepiej dać 50% horizontal i 90% vertical - wtedy napisy będą
na środku na dole nie za nisko i nie za wysoko. Włączamy też letterboxing 4:3
- film z napisami od tej pory będzie renderowany w oknie 4:3 z czarnymi pasami u góry i dołu,
a na dole będą napisy.

Stereoscopic - hehe to są napisy trójwymiarowe
Za pomoca suwaka paralax ustawiamy ich "głębie".
Powoduje to (w przypadku ffds 20051221 zwiechę na pierwszych napisach)


Zakładka Text.

Zaznaczamy "split long subtitles lines" - wielu osobom brak tej funkcji mocno doskwierał.
Obok mamy suwak do ustawiania interlinii - przerw między wierszami napisów.
Poniżej mamy opcje do wywalania (albo łączenia - jak ktoś to sprawdzi, to niech da znać)
podwójnych napisów (i napisów pojawiających się zbyt szybko).
Jeszcze niżej są opcje do poprawiania błędów w napisach - jest polski słownik ortograficzny!
(cały ten gadżet pochodzi z SubRipa).

Następna zakładka to Font.

Wybieramy "arial" i charset: east europe. Ustawiamy rozmiar tekstu tak, aby nam się
go dobrze czytało, a długie linie nie wychodziły za boki ekranu.
Polecam ustawić "autosize" i wielkość około 2x większą niż była - przyda się później
(to jest bug/normalne, że przy autosize są 2x mniejsze).
Ja mam size 40 i ekran 1024x768

Reszta opcji to spacing - r o z s p a c j o w a n i e liter (%), kolor, grubość czcionki,
cień napisów, jego grubość i przezroczystość (shadow strenght i raadius).

Kolejna zakładka zawiera ustawienia filtra vobsub.
Niektórzy VobSub'a znają jako oddzielny pakiet i używają .
Mamy tutaj wybór języka (wmuksowanych w plik z filmem, jak podejrzewam) napisów.

Resize & aspect - tutaj dokonujemy zmiany rozdzielczości obrazu
i proporcji boków (alternatywnie do playera).
Wymaga to często restartu filmu.
Nazwy opcji mówią same za siebie
Użycie black borders polecam wszystkim, którym przeszkadza,
że tv ucina część obrazu.
W zakładce settings wybieramy metodę skalowania i jej parametry.
Polecam filtr Lanczos. Inne też są opisane pod spodem.

Nie polecam wielokrotnych zmian np. do 720x za pomocą ffds i do 1024x
za pomocą playera, gdyż potęguje to "rozmycie" związane ze skalowaniem obrazu

Deinterlace - jeśli ktoś ma materiał, który jest z przeplotem
(np. materiał zgrany z TV lub kamery wideo) może tutaj go usunąć.
Jedną z lepszych dostępnych tu metod jest TomsMoComp.
Search effort określa ile czasu CPU ma być poświęcone na wykrycie,
czy obraz w danym miejscu należy wygładzać, czy nie.
Z reguły im mniej, tym lepiej, 2-5 powinno wystarczyć.
Vertical filter delikatnie rozmywa w pionie pary linii
- pomocne jeśli ukośne linie są postrzępione.


Powyżej widzimy przykład obrazu z nieusuniętym przeplotem.
Widać charakterystyczne poziome linie tworzące "grzebienie".

Ciekawą (i wg mnie lepszą) metodą wydaje się być kernel bob,
jako że odtwarza (regeneruje) oryginalną liczbę klatek (pól) materiału.
Dzięki temu obraz jest dwa razy bardziej płynny.
(kto powiedział, że ludzkie oko widzi 25 klatek na sekundę? - nikt
Threshold, czyli próg polecam ustawić w granicach 5-10.
Powinno to dać najlepsze efekty. Map pokaże nam które części obrazu
są powielane na obie nowe klatki, a z których usuwany jest przeplot
(te z poziomymi kreskami). Nie zauważyłem aby pozostałe ustawienia
(w przypadku mojego wideo) miały większy wpływ na jakość obrazu.
Jeśli obraz drży, to należy zaznaczyć pole swap fields (na górze).
Jest to też dobra metoda by sprawdzić, czy zmiany ustawień
dokonywane są na bieżąco, po kliknięciu apply, czy restarcie wideo.

Należy pamiętać, że wideo z 50 klatkami na sekundę może wymagać
nawet dwukrotnie większego bitratu (2x więcej klatek),
oraz że odstepy czasowe między klatkami są mniejsze -
należy zezwolić enkoderowi na zastosowanie nawet* dwukrotnie większej
ilości klatek B niż w przypadku "normalnym".
* - Max B frames może być ograniczony przez inne czynniki,
takie jak np. mozliwości (raczej sprzętowego w tym przypadku) dekodera.


Noise - szum.

W powyższym oknie widzimy zakładkę ustawień szumu.
Szum można dodać aby uzyskać efekt ziarnistości filmu podobny do tego w kinie.
Mamy tu trzy algorytmy generowania szumu - polecam mplayer noise.

Uniform noise to szum jednorodny, o stałym poziomie zakłóceń,
wygląda on lepiej od zwykłego szumu.

Averaged to szum uśredniony z kilku klatek,
wyglada to tak jakby szum leciał dwa razy wolniej niz film

Pattern to szum podobny do tego w tv z cienką anteną
lub magnetowidu VHS podłączonego cienkim kablem.

Mamy tu oddzielne ustawienie poziomu zakłóceń jasności i koloru.
Kolorowy szum wygląda brzydko.
dobre ustawienia to standardowe 30/10.

Flickering to rozbłyski podobne do tych w starych filmach w kinie.
Możemy ustawić ich natężenie (amplitude) i częstotliwośc (frequency)

Shaking to skakanie filmu - jak w satrym filmie w kinie
Dostępne opcje są podobne.

Vertical lines to pionowe linie - zarysowania na celuloidzie.
Ustawiamy tam częstoliwość ich pojawiania się,
długość, przezroczystość i jasność.

Dust & scratches to kurz i zarysowania - śmiecie na tasmie filmowej.
Opcje są podobne do wyżej wymienionych opcji.

Spróbujcie tego:
Ustawcie szum tak jak na obrazku (flickering amplitude na 3-6 a nie na 33!),
w zakładce picture properties ustawcie saturation na 0,
w zakładce levels włączcie automatic - przycięcie wartości wejściowych
output levels ustawcie na cos w okolicach 40-200,
w zkaładce blur & NR ustawcie swscaler gausian blur radius=9,
a w konfiguracji ffdshow audio lub innym equalizerze
podbijcie tonów średnich, a ujmijcie wysokich i niskich.
Potem odpalcie film i cieszcie się jego czarno-białą wersją


Input levels - tutaj wybieramy jaką część zakresu jasności
chcemy przemapować na to, co ustawimy w output levels.

Np. jeśli mamy ciemny monitor to output levels ustawiamy
na zakres 30-255. Wtedy czarny kolor RGB 0,0,0 zostanie zmieniony
w RGB 30,30,30 a wszystkie pozostałe odcienie
zostaną proporcjonalnie rozjaśnione - np. 127 na 127+15,
a 255 na 255, rozumiecie?

Natomiast jeśli ustawimy input levels na 30-255,
to wszystkie odcienie z przedziuału 0-30, czyli ciemne szczegóły
zostaną wyświetlone jako 0 lub tyle ile ustawimy w output.
Dzięki temu możemu rozciągnąć jasność filmów o małej dynamice.
Istnieje jednak ryzyko, że obetniemy jakieś szczegóły
w jasnych lub ciemnych miejscach.
Opcja automatic dynamicznie obcina nam te skrajne wartości wejściowe,
które nie występują w danej klatce i mapuje je rozpiętość poziomów taką,
jaką ustalilismy w output levels.
Przy ciemnych, jasnych lub szarych, monotonnych scenach
Wygląda to nieciekawie - są zbyt kontrastowe w stosunku do oryginału.


Offset & flip to filtr służący właściwie do naprawy złych ripów z TV.
Czasem zdarza się w nich, że obraz koloru przesunięty jest względem jasności.
Dzieje się tak, ponieważ celem zachowania wstecznej kompatybilności
z czarno-białymi telewizorami sygnał jest transmitowany
jako jedna z odmian fomratu opisu kolorów YUV, gdzie Y to jasność
(to co wyświetlają telewizory czarno-białe, przy okazji jest to suma
kanałów RGB, dla systemu PAL/SECAM z wagami R:G:B = 0.222021 do 0.706645 do 0.071334),
U i V są sygnałami różnicowymi tj. U=B-Y czyli U=-R-G,
a V=R-Y czyli V=-G-B (oczywiście przy zachowaniu stosunków R:G:B)
Czasem zdarza się, że obrazy U i V przesuną się w którymś momencie względem Y.
Ustawiając suwakami odpowiednie dla koloru i jasności
przesunięcia w pionie i poziomie można to łatwo naprawić.
Flip odwraca obraz do góry nogami, a mirror odbija w poziomie.

Przy okazji możecie się pobawić tym filtrem i sprawdzić jak mało czułe
na kolory jest nasze oko - nawet spore przesunięcie koloru względem jasności
nie wygląda aż tak bardzo źle


Visualizations - tutaj możemy włączyć pokazywanie wektorów ruchu, quantizerów
poszczególnych bloków i wykresu graficznego rozmiaru poszczególnych klatek.

Miscellaneous - wybieramy tu rodzaj IDCT, możemy włączyć renderowanie obrazu
jako czarno-biały i ustawić opcje poprawiania bugów w kodekach itp.

Output - tu wybieramy dostępne przestrzenie kolorów:

Planar YUV - dostępne tylko jeśli się wyłączy HW deinterlacing w overlay mixer
Dostępna tutaj nakładka YV12 jest używana podczas wyświetlania filmów mpeg-1 i 2
Dzięki tej nakładce filmy z pixel aspect ratio róznym od 1:1
(np. SVCD i większość DVD) są poprawnie skalowane.

Packed YUV - w tym YUY2 - przestrzeń w której są zakodowane filmy.
W tej przestrzeni jasność - Y przyjmuje wartości z przedziału 15-245,
natomiast informacje o kolorze U i V przyjmuja wartości z przedziału 15-240.
Dzieki temu filmy na monitorach wydają się ciut jaśniejsze
i są bardziej zbliżone kolorystycznie do oryginału na TV.

RGB w tym RGB32 (32bit) - jest to alternatywna przestrzeń,
do której może być dekodowany nasz film.
W odróżnieniu od YUY2 uzywa ona wartości z przedziału 0-255,
co powoduje, że filmy są ciemniejsze i mają bardziej przesycone kolory
w stosunku do tego co moglibysmy ujrzeć na tv.

Aby zobaczyć jakiej przestrzeni aktualnie używa ffdshow do odtwarzania wideo
(jako, że zaznaczyć możemy prawie wszystkie przestrzenie na raz)
należy udać się do "info & debug" (na górze listy) i tam mamy "output colorspace".

Inne opcje to np. "select closest matching colorspace",
czyli wybór przestrzeni najbliższej tej użytej w filmie.

"Use overlay mixer" to użycie sprzętowego miksera wideo.
Dzięki temu filmy mpeg2 mają wyświetlane poprawne Pixel Aspect Ratio -
są tak szerokie jak powinny być.

Jednak należy być ostrożnym z funkcją hardware deinterlacing -
Na GF 6600XT i forcewarach 56.72 powoduje ona podczas
stosowania nakładki VMR9 i kolorów YUY2 błędne skalowanie obrazu,
takie jakby pionowe "echo" i obwódki wzdłuż krawędzi.
wyłączenie HW deinterlacing rozwiązuje ten problem -
można wtedy użyć natywnej dla mpeg-2 przestrzeni YV12,
która nie powoduje wyżej wymienionych problemów.

W oknie output mamy również opcję flip video - odwraca to obraz do góry nogami.


Info - informacje o aktualnie odtwarzanym filmie.

Tray dialogs & path - tu zmienimy język w ffdshow
(ja używam go i opisuje w wersji angielskiej).
Tutaj także włączymy opcje wyświetlania ikony ffds w system tray'u Packed
- przydatne do zmiany opcji ffds w czasie oglądania filmu.
BSplayer ma te opcje pod prawym klawiszem -> options -> filters i miedzy innymi ffdshow.
Podobnie można się dostać do tych opcji w Media Player Classic.
Uwaga: To jest stary temat
Ta dyskusja jest starsza niż 90 dni. Informacje w niej zawarte mogą już nie być aktualne