Konfiguracja ffdshow.
Wybór wersji, instalacja, ustawienie kodeków,
postprocessing, filtry i narzędzia.
(c) by
Jacek Popłoński dejotpe (na) aster.pl
(tylko do zgłaszania błędów - na pytania
odpowiadam na grupie
alt.pl.divx)
Ostatni update: 29 listopada 2006r.
Strona główna
AC3 Filter
XviD
GSpot
divx2dvd
dvd2divx
dvd2mp4
Spis treści:
0.
FFDShow a kodeki
- różnice i zalety.
1.
Instalacja ffdshow
. Jaką wersję ffdshow wybrać.
2.
Okno konfiguracji ffdshow
.
3.
Kodeki
. Włączanie, wyłączanie i wybór
odpowiednich dekoderów dostępnych w ffdshow.
4.
Profile ustawień
filtrów dostępnych w ffdshow,
oraz ich zapisywanie i automatyczne ładowanie.
5.
Postprocessing
. Filtry poprawiające jakość
skompresowanego materiału wideo.
6.
Wyostrzanie
- opis filtrów wyostrzających obraz.
7.
Napisy
. Ustawianie, automatyczne ładowanie
i formatowanie napisów do filmów.
8.
Skalowanie
, zmiana rozdzielczości i proporcji boków obrazu.
9.
Przeplot
. Usuwanie przeplotu, oraz odtwarzanie
na podstawie pól
pełnej płynności materiału wideo
.
10.
Szum
. Uzyskiwanie efektu ziarnistości obrazu (film effect),
oraz inne ciekawe efekty (
stary film
).
11.
Poziomy
. Korekcja jasności i kontrastowości obrazu.
Gamma
i
krzywe
.
12.
Output
. Ustawienia przestrzeni kolorów i nakładki wideo.
0. Czym jest ffdshow?
FFDShow
nie jest kolejnym zbiorem kodeków.
FFDShow jest
wrapperem, czyli programem
"zawierającym kod, który tłumaczy jak wykonać inny kod"
Ogólnie rzecz biorąc pakiety kodeków to programy
instalujące całą masę, często dublujących się
nawzajem kodeków do jednego katalogu.
Dodatkowo tak naprawdę 95% z tych kodeków
jest nam zupełnie niepotrzebna i bezużyteczna.
Zwykły użytkownik tego nie wie i instaluje wszystko
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
1 z 17
robiąc sobie tylko bałagan w systemie,
a to może się skończyć tym, że nic nie będzie działało...
Dodam, że jedyny sposób by usunąć część kodeków z codec-packa,
to odinstalować wszystko i zainstalować jeszcze raz to co trzeba.
Nie zawsze to działa.
I tutaj pojawia się ffdshow - zawiera on przede wszystkim jedną rzecz:
libavcodec - dzięki niemu możemy odtworzyć 90% filmów (audio i wideo),
divx, xvid, mpeg4, mpeg2, AVC, X264, mjpeg itp.
Co więcej możemy ustawić, które kodeki ma on obsługiwać, a które nie.
Libavcodec jest częścią linuxowego projektu ffmpeg,
oraz głównym składnikiem (linuxowego) mplayera.
Natomiast ffdshow jest wrapperem, dzięki któremu libavcodec
jak i inne dekodery zawarte w ffdshow odtwarzają
znakomitą większość
* klipów wideo.
*) Jedyne wyjątki to real media (rm/rmvb) i quicktime (qt/mov),
jednak problemem tutaj są głównie ich formaty plików,
ffdshow potrafi bowiem zdekodować i h263+ jak i mpeg4 ASP/AVC,
których używają odpowiednio real media i quick time.
Do tych plików polecam real alternative i QT alternative stąd:
http://home.hccnet.nl/h.edskes/mirror.htm
QT alternative pomoże nam też odtworzyć pliki
3gp (3gpp) i mp4
stworzone przy pomocy i z myślą o komórkach i ?iPodach?
Jeszcze raz: ffdshow to nie jest codec pack!
FFDShow jest filtrem - dekoderem wideo typu direct show,
oraz dekoderem audio (nie używam, więc nie opiszę)
Jednak pakiet zawiera również narzędzie o nazwie ffvfw,
które jest enkoderem video for windows,
do większości obsługiwanych przez dekoder formatów!
Direct show jest używany do dekodowania filmów
przez zwykłe windowsowe playery.
Video for windows jest używane do dekodowania
i enkodowania video w programach typu virtual dub mod.
Aby wczytać film do VDM potrzebny nam będzie albo kodek vfw,
albo skrypt avisyntha oparty na DirectShowSource,
co też ma swoje zalety np. preprocessing źródła.
FFDShow jest szybkim, uniwersalnym i bezpiecznym rozwiązaniem
zawierającym więcej i oferującym większe możliwości
(zwłaszcza jeśli chodzi o filtry), niż większość codec-packów
(więcej nawet niż bliźniaczy mplayer :D )
i to do tego w znacznie mniejszym objętościowo pakiecie.
1. Co? Gdzie? Jak?
a) Instalacja.
http://sourceforge.net/projects/ffdshow
To jest oficjalna strona projektu
i stąd można pobrać starą,
pochodzącą z 2004 roku wersję ffdshow
Dostępne są tam następujące wersje ffdshow:
ffdshow-20041012.exe skompilowana dla zwykłych procesorów
lub:
ffdshow-20041012-
sse.exe
jeśli mamy co najmniej athlona1500+(palomino), durona900(morgan),
lub PIII(katmai), celeron 533A(coopermine).
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
2 z 17
ffdshow-20041012-
sse2.exe
jeśli posiadamy pentium4/celeron1700(willamette) lub athlon64/sempron64
UWAGA! Jeśli macie P4 i wersja sse2 powoduje przy niektórych filtrach
(np. szum, poziomy) wywalanie się ffdshow i okno z komunikatem błędu,
to należy zainstalować wersję zwykłą sse.
Podobnie rozróżniamy ze względu na typ procesora inne wersje ffdshow.
Chociaż mimo optymalizacji pod dane procesory
(najczęściej sse) powinny pójść one i na starszych maszynach
(nie testowałem tego, bo nie miałem okazji).
FFDShow 2004-10-12 jest ostatnią oficjalną wersja stworzoną
przez Milana Cutkę i udostępnioną na sourceforgu.
Oficjalna strona
ffdshow by Milan Cutka
Ta wrersja ffdshow ma problemy z odtwarzaniem poprawnie klatek typu B z
X264,
nie obsługuje "H264 deblocking" (co jest istotne przy jego odtwarzaniu),
nie działają w niej (nie są widoczne) kodeki vfw w Virtual Dubie:/
oraz nowsze wersje mają większą ilość filtrów i bajerów
Dlatego polecam wersję
ffdshow_rev497_20061104_clsid.exe
pobraną ze strony
http://x264.nl/
Sam jej teraz używam i nie słyszałem, żeby były z nią jakieś problemy.
Jak widzicie w nazwie jest teraz również numer builda.
Wersję ffdshow można sprawdzić po instalacji w zakładce about.
Słyszałem że ffdshow Celtic Druida komuś nie chodził jak trzeba,
mimo że mi ten z ~października 2005 chodził idealnie, niemniej jednak...
FFDShow Celtic Druida możecie pobrać stąd:
http://celticdruid.no-ip.com/xvid/
Wreszcie jest też strona
free-codecs.com
która oferuje cały szereg kodeków do pobrania.
Jest tutaj także dostępny ffdshow.
Jako, że strona jest popularna wśród userów,
oraz ponieważ jest tam info o wersji i twórcy builda
zdecydowałem się zamieścić tutaj link do niej:
http://www.free-codecs.com/download/FFDShow.htm
Jeśli więc zależy Wam na nowej wersji ffdshow,
z obsługą X264 i z enkoderami video for windows
to pobierzcie ją z jednej z wymienionych wyżej lokacji.
Macie wtedy pewność, że nie jest to po prostu nieudana kompilacja
jakiegoś nocnego zrzutu kodu z CVSa - a tak się zdarza,
jeśli ściągamy ffdshow ze stron z plikami, a nie od jego twórców.
Bywa też tak, że na sieci pojawia się wersja ffdshow z nową datą
podczas gdy w rzeczywistości jest to data kompilacji,
a nie data służąca za oznaczenie wersji kodu -
- ffdshow niby jest nowsze, a w rzeczywistości jest to
ten sam kod co w innych "starszych" kompilacjach.
Kolejna sprawa to częstość pojawiania się nowych wersji.
Nie ma się co na nie rzucać - zmiany są niewielkie i zainteresują
przede wszystkim tych, którzy czekają na to co akurat jest robione.
Można o tym przeczytać w changelogu, jednak jeśli nic z tego
co tam jest napisane nie rozumiecie, to śmiało możecie zostać
przy aktualnie najnowszej wersji ffdshow pobranej z w/w stron.
Często jest też tak, że nie ma żadnej informacji o tym,
co zmieniło się w nowej wersji.
Pamiętajcie jednak, żeby raz na pół roku odwiedzić moją stronę
lub stronę
http://x264.nl/
i pobrać najnowszą wersję ffdshow.
UWAGA!
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
3 z 17
Nowe wersje ffdshow mają
nowy instalator, który proponuje
odinstalowanie starej wersji ffdshow i usunięcie jej ustawień.
Ja z tej opcji nie skorzystałem i ffdshow mimo tego działał:D
Więc jeśli nie chcecie konfigurować wszystkiego od nowa,
to pomińcie ten punkt. Zawsze potem będziecie mogli
w razie niepowodzenia operacji odinstalować ffdshow
i zainstalować go od nowa:D Powodzenia!
Podczas instalacji wybieramy english (lub polski), ok, next, "i agree" i...
Choose components - Wybieramy co ma być zainstalowane
Video decoder - możemy wybrać wszystko albo standardowo
Audio decoder - osobiście wprawdzię uzywam wciąż
AC3 filter
ale ffdshow używam do dekodowania AAC. Jeśli ktoś by jednak chciał
dekodowac audio w ten sposób, to niech zaznaczy mp1/2/3,ac3, dts, aac i
lpcm.
Wtedy wszelkie audio z filmów będzie szło przez dekoder,
co pozwoli zastosować wszedzie normalizację (volume) czy inne filtry jak
np:
equalizer, noise reduction, freeverb, LFE crossover czy mixer.
Video filters - prekonfiguracja ffdshow. Polecam subtitles i
postprocessing
*
Audio filters - tutaj poleciłbym normalizację*
* uwaga, te opcje tylko włączaja dane filtry,
a mogę one wymagać dalszej konfiguracj,
np. postprocessing będzie ustawiony na zero,
chyba ze mieliśmy go wcześniej ustawionego.
Potem już tylko klikamy next i wybieramy katalogi
(IMHO najlepszy jest domyślny) i klikamy
install:)
b) Konfiguracja.
-Klikamy start -> programy -> ffdshow -> configuration.
Inną metodą dostania się do okna konfiguracji dekodera ffdshow
jest zaznaczenie w grupie "tray, dialog & paths" opcji "show tray icon".
Dzięki temu w czasie gdy ffdshow będzie używany do dekodowania wideo (audio
też),
w polu system tray (obok zegara, na pasku zadań) pojawi się odpowiednia
ikona.
Do opcji ffdshow można się również dostać klikając w dobrym playerze
prawym klawiszem na okno z wideo i wybierając z menu kontekstowego
listę aktualnie używanych filtrów.
Np. w
BSplayerze
: prawym -> options -> filters
a w
MPlayerC
: prawym -> filters
Zaletą drugiej i trzeciej metody jest to, że dostajemy do bieżących
ustawień
i dokonane zmiany będą miały bieżący wpływ na wyświetlany materiał.
W menu start mamy dostęp do opcji "off-line".
Poniżej znajduje się widok okna konfiguracji ffdshow.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
4 z 17
Po lewej widzimy grupę opcji, a po prawej ustawienia tych opcji.
Jeśli zatrzymamy sie na chwilę z kursorem na liście po lewej
pojawi się opis aktualnych ustawień danego filtra.
Można zmieniać kolejność filtrów przeciągając je
na liscie po lewej góra/dół. Reset order przywraca pierwotną kolejność.
Filtry włączamy za pomocą "ptaszków" po lewej,
albo na górze okna ustawień (obok nazwy filtru).
W wielu filtrach aktywne jest pole "only right half",
które spowoduje, że tylko prawa strona obrazu zostanie przetworzona,
a lewa pozostanie oryginalna - wygodne do obserwowania efektów filtrów.
Na powyższym obrazku mamy wybrane "codecs" czyli obsługiwane formaty:
Codecs - zaznaczamy tu to co ffds 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).
Jak widzicie większość rzeczy u mnie jest obsługiwana przez libavcodec,
z wyjątkiem WMV2/8, które jest wciąż niekompletne.
W starszych wersjach przy MPEG 1 i 2 była informacja,
że libmpeg jest "currently broken" -bo był, a teraz działa dobrze
(są problemy z proporcjami obrazu - ale nie w
Media Player Classic
wystarczy przypisać pliki mpg, mpeg i m2v do MPC).
Na pewno warto zaznaczyć divxy, xvida i mjpeg (libavcodec)
Można też inne mpeg4, jak np. mp43, ffds i other mpeg4.
Jeśli chodzi o wybór xvid/libavcodec w przypadku dekodowania xvida,
to nowsze buildy często nie zawierają w sobie xvida i nie ma tej opcji.
Jednak to żadna strata, gdyż w przypadku wyboru "xvid"
wszystko za wyjątkiem samego dekodowania wykonywane było przez ffdshow.
Czyli ffdshow nie uzywał postprocessingu xvida, a własnego.
Co więcej na
forum.doom9.org
trafiłem na benchmark,
z którego jasno wynika iż dekoder xvida jest o 50% wolniejszy od
libavcodec.
Na pewno lepiej też używać ffds do mpeg 1 i 2 (libmpeg2),
bo Elecard nie ma przecież postprocessingu i tylu opcji co ffds ;)
Inny dobry dekoder MPEG-2 jest w pakiecie
Nero
.
Ja uzywam ffdshow - mogę sobie ustawić postprocessing
plus wszystkie filtry tak jak chcę:)
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
5 z 17
Jak już wspomniałem wersja 2004-10-12 ma problemy z X264,
a mianowicie nie odtwarza ona poprawnie klatek typu B
- zamiast obrazu widać szare tło.
Nowsze wersje ffdshow od
Celtic Druida
i z
X264.nl
nie mają z tym problemu.
Z resztą typów video się raczej nie spotkamy, ale jeśli gspot wskaże nam
któryś z dostępnych tu kodeków, to można go włączyć i spróbować:)
(jakby nie działało to nie trzeba odinstalowywać ffds tylko przestawić
z powrotem na disabled - to jest duża zaleta ffds)
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.
Przechowuje on aktualne ustawienia ffdshow.
Możemy stworzyć nowy zestaw presetów klikając
New.
Mały trójkącik z prawej pozwala nam wybrac, czy nowy profil będzie bazował
na profilu standardowym, aktualnym, czy jakimś innym zapisanym w pliku.
Możemy się przełączać między presetami klikając na nie
i zaznaczając je na niebiesko (równierz w trakcie oglądania filmu,
ale nalezy wtedy pamietac aby zamknąc okno klikając ok,
a nie np. czerwony krzyzyk). Dwuklik powoduje wybranie danego profilu
jako profilu standardowego (jest on wtedy pogrubiony).
Opcja zmiany nazwy (rename) mówi sama za siebie.
Nazwę profilu można tez zmienić klikając
na dany profil dwa razy w odstępie sekundy.
Standardowo profile ffdshow są zapisywane w rejestrze systemowym,
ale możemy je również zapisać do pliku *.ffpreset
Oto dwa profile stworzone przeze mnie:
http://strony.aster.pl/dejotpe/default.ffpreset
<- mój profil standardowy
http://strony.aster.pl/dejotpe/default 50fps.ffpreset
<- to co wyżej +
kernel bob
http://strony.aster.pl/dejotpe/old noise.ffpreset
<-
profil opisany tutaj
http://strony.aster.pl/dejotpe/negatyw.ffpreset
<- preset dający efekt
negatywu
Niestety profile - presety nie zapisują ustawień
innych niż ustawienia obrazu (stąd są one w zakładce image settings),
a co za tym idzie kodeki musicie ustawić sobie sami.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
6 z 17
Pliki ffpreset najlepiej umieścić w katalogu ffdshow.
Aby załadować je na stałe do ffdshow polecam użyć opcji
new -> from file...
Preset autoloading conditions pozwala nam na ustalenie warunków
przy jakich zostanie automatycznie załadowany aktualnie wybrany
(podświetlony!) profil.
Możliwe są następujące opcje:
- rozdzielczość filmu, np. rozdzielczość powyżej 720x576 ładuje profil HDTV
- nazwa pliku z filmem (możliwe jest stosowanie
wildcardów - * i ?)
np. pliki *.mp4;*.mkv będą miały napisy wczytywane ze strumienia
w danym pliku (średnik służy do rozdzielania kolejnych filtrów)
- zależnie od playera np. wymuszenie w bsplayerze aspect ratio 4:3
w przypadku plików *.m2v (svcd)
- zależnie od dekodera używanego do danego plku przez ffdshow
np. to samo co wyżej - aspect ratio 4:3 w przypadku mpeg2video
- zależnie od obecności danego filtra directshow
(jeśli tego nie rozumiecie to nie używajcie, bo ja nie mogę wymyślić
żadnego sensownego przykładu:P)
- zależnie od kodu 4CC filmu, np. silniejszy deblocking dla DIV3 i DIV4
- zależnie od stosunku boków pikseli (pixel aspec ratio)
Ta opcja będzie najlepsza do resizowania svcd w bsplayerze.
Kliknijcie na znak zapytania aby zobaczyć jak ma wyglądać regułka.
Dla SVCD w PAL będzie to "aspect=1.6" a dla NTSC 1.333
- zależnie od stosunku boków obrazu, opcja podobna do poprzedniej.
Pobawcie się gspotem 2.5 aby zobaczyć czym różni się
pixel AR od frame AR od display AR.
Krótko mówiąc w svcd które ma rozdzielczość 480x576 (pionowy prostokąt!)
FAR jest 0.833 (5:6), ale piksele mają proporcje boków 1.6:1
czyli sa rozciągane o 160% w poziomie, co po przemnożeniu daje nam
display aspect ratio DAR= 1.333 (4:3) i wyświetlaną rozdzielczość 768x576
Informacje o pixel aspect ratio są zapisane w strumieniu mpeg w svcd,
ale starsze wersje bsplayera, jak i pewnie część innych playerów
nie czynią z nich pożytku i wyświetlają stosując PAR 1x1 :(
- ostatnia opcja - zależnie od fps filmu np. jeśli mamy dużo plików
ze zwalonym
IVTC
, to możemy ustawić aby w przypadku fps=29.97
ffdshow włączył usuwanie przeplotu (np. TomsMoComp)
Postprocessing - czyli usuwanie artefaktów kompresji.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
7 z 17
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 ;)
(Na końcu napisałem tez trochę o zwiększaniu
wydajności
dekodowania wideo)
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
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
8 z 17
- 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łę.
Deblocking dla H264/X264
W przypadku najnowszych wersji ffdshow (np. z listopada 2006)
problem ustawienia deblockingu h264 nie istnieje,
gdyż nie mają one opcji, które by umożliwiły inny niż prawidłowy,
wykorzystujący informacje o deblocking strenght i treshold postprocessing.
Dzięki temu mamy pewność, że każdy strumień wideo H264
będzie dekodowany poprawnie. Co więcej nowy ffdshow zawiera
znacznie szybszy dekoder h264.
Jeśli ktoś posiada słabszy sprzęt lub z niewiadomych powodów
chciałby zrezygnować z deblockingu dla H264,
to może zaznaczyć odpowiednią opcję podczas instalacji ffdshow.
W opcjach dekodera ffdshow, w sekcji "decoder options"
znajduje się opcja "skip H264 deblocking on delay...",
która spowoduje pominiecie postprocessingu strumienia wideo h264,
jeśli opóźnienie w jego dekodowaniu przekroczy zadaną wartość.
Jest to funkcja podobna do automatic quality control,
dostępnej dla zwykłego postprocessingu.
W przypadku starszych wersji ffdshow ważne jest
prawidłowe ustawienie postprocessingu dla H264/X264!
Kodeki AVC mają wbudowany w enkoder filtr usuwający bloki
z możliwością regulacji progu i mocy jego działania.
Dlatego też wymagają one własnego filtra,
który uwzględniał by te ustawienia.
Aby postprocessing w H264 (X264) w starszych ffdshow
działał prawidłowo należy w polu "H.264 deblocking" ustawić
"
when decoding H.264"!!!
Wtedy ten filtr będzie działał gdy odtwarzane jest H264.
Opcja "...and decoder deblocking is off",
powoduje że natywny deblocking z H264 działa tylko wtedy,
gdy wyłączymy zwykłe rodzaje postprocessingu -
albo mamy zwykły postprocessing do wszystkiego
(łącznie z H.264, co baaardzo rozmywa obraz)
albo mamy tylko deblocking dla materiału zakodowanego w H264.
Polecam również poczytać
cały ten wątek
na grupie alt.pl.divx:)
Sharpen - wyostrzanie.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
9 z 17
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ń.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
10 z 17
Subtitles - napisy
FFDshow w wersji 2004.10.12 ma sporo nowych opcji,
kolejne wersje mają tych opcji jeszcze więcej.
Włączamy je tak jak zwykle: "v". 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:P
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ż l
etterboxing
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:P
Za pomoca suwaka paralax ustawiamy ich "głębie".
Powoduje to (w przypadku ffds 20051221 zwiechę na pierwszych napisach:P)
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ć)
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
11 z 17
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.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
12 z 17
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.
Więcej o usuwaniu przeplotu na
http://www.100fps.com/
Należy pamiętać, że wideo z 50 klatkami na sekundę może wymagać
nawet dwukrotnie większego bitratu (2x więcej klatek:P),
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.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
13 z 17
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:P
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ą
:)
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
14 z 17
Levels. Kto się bawił Photoshopem, ten wie do czego to służy:)
A służy to do rozjaśniania/ściemniania obrazu.
Levels jest lepszą metodą niż contrast/brightness z picture properties.
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.
Polecam raczej luminance level fix z postprocessingu mplayera.
Albo zabawę z
gammą - powoduje ona nieliniowe przemapowanie
tonów średnich z zachowaniem pełnej dynamiki jasnosci.
Przemapowanie odbywa się za pomocą krzywej tonalnej
o kształcie funkcji wykładniczej, w której określamy wykładnik.
Wartości powyżej jedności rozjaśniają obraz, a poniżej ściemniają.
Gamma = 2 jest odwrotnością gammy = 0.5.
Najczęsciej będziemy chcieli używać gammy z przedziału 1.2-1.5
W przypadku zabawy poziomami istnieje ryzyko,
że 30 poziomów jasności zostanie przemapowane
na 255 poziomów, co spowoduje, że różnice jasności
między kolejnymi poziomami jasności będą na tyle duże
iż będzie można je łątwo rozróżnić - płynne gradienty będą
schodkowane. Nazywamy to efektem
posteryzacji.
Przełącznik
full range zmienia nam zakres działań filtra
z 15-245/240 za 0-255 przez co z zaznaczoną ta opcją
film robi się ciemniejszy i bardziej nasycony.
Pole wyboru
mode daje nam kilka różnych wersji tego filtra.
Oprócz zwykłej mamy też 4 metody mapowania jasności opracowanie przez
Didee'go.
Ostatnia metoda
curve pozwala nam na ręczne kształtowanie
krzywej wg której będą mapowane kolory.
Kto bawił się Photoshopem ten wie o co tu chodzi;)
Sztuczka: włączcie
picture properties i przestawcie hue o 180 stopni.
Następnie włączie l
evels, wybierzcie mode:curve i ustawcie krzywą tak,
by prowadziła z lewego górnego rogu do prawego dolnego.
Macie wtedy piękny negatyw filmu ;)
Oto gotowy preset:
negatyw.ffpreset
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),
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
15 z 17
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 -
U mnie 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.
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
16 z 17
Chciałbym w tym miejscu przy okazji napomknąć dwa słowa o
wydajności.
Otóż zależy ona przede wszystkim od bitratu filmu!
Znacznie bardziej skomplikowany xvid, przy bitracie 8Mbps (1080i)
chodził znacznie lepiej niż mpeg2 przy bitracie 18Mbps.
Ilość danych do przetworzenia ma (w tym przypadku) większy wpływ
na wydajność dekodowania, niż stopień komplikacji kompresji materiału
wideo.
Podobnie podczas enkodowania materiału wideo wyższy bitrate
powodował będzie wolniejszą kompresję.
Drugim czynnikiem wpływającym (w nieznacznym stopniu) na wydajność
renderowania filmu ma rodzaj stosowanej nakładki wideo.
Overlay Mixer jest nienzacznie szybsza od VMR9.
Należy również pamiętać, że nakładki VMR9 i 7 wyświetlają wideo
jako tekstury 3D lub 2D używając do tego procesora i ustawień karty
graficznej.
Włączenie antyaliasingu i filtrowania anizotropowego w ustawieniach 3D
karty graficznej
spowolni w znacznym stopniu wyświetlanie wideo.
Dlatego polecam ustawić tam "pod kontrolą aplikacji" (nVidia),
a jeśli chcemy wymusić na jakiejś grze konkretne ustawienia,
to zróbmy to dodając jej oddzielny profil ustawień.
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
.
Strona główna
Powrót do góry...
ffdshow ustawienia i konfiguracja
2008-09-29 17:33
17 z 17