### [yuy2][rgb32][rgb24]

# AssumeFPS

## AssumeFPS(clip, float fps, bool "sync_audio")
AssumeFPS(clip, int numerator[, int denominator], bool "sync_audio")

fps: prędkość klatek w klipie wynikowym (ilość klatek na sekundę)
svnc_audio: jeżeli jest równy true to zmieniana jest również prędkość odtwarzania dźwięku, tak, aby zachować synchronizację z obrazem. Przy dopasowaniu prędkości odtwarzania dźwięku jego pasmo częstotliwości zmienia się (przesuwa się ku wyższym częstotliwościom gdy prędkość odtwarzania dźwięku zostaje zwiększona, i ku niższym częstotliwościom gdy prędkość zostaje zmniejszona); domyślnie svnc_audio=false
numerator: liczba naturalna (licznik); służy do dokładniejszego określenia fps'u filmu
denominator: liczba naturalna (mianownik); służy do dokładniejszego określenia fps'u filmu

Filtr AssumeFPS zmienia prędkość odtwarzania klipu bez zmiany liczby klatek co oznacza, że klip będzie odtwarzany szybciej lub wolniej (zmieniany jest tylko parametr fps klipu). Filtr ten może służyć także tylko do zmiany prędkości odtwarzania dźwięku.

### [yuy2][rgb32] [rgb24]

# ChangeFPS

## ChangeFPS(clip, float fps, bool "linear")
ChangeFPS(clip, int numerator [, int denominator], bool "linear")

fps: prędkość klatek w klipie wynikowym (ilość klatek na sekundę)
linear: przy ustawieniu domyślnym, AviSynth usuwa klatki w sposób liniowy; domyślnie linear=true
numerator: liczba naturalna (licznik); służy do dokładniejszego określenia fps'u filmu
denominator: liczba naturalna (mianownik); służy do dokładniejszego określenia fps'u filmu

ChangeFPS zmienia liczbę wyświetlanych klatek na sekundę poprzez usunięcie lub kopiowanie klatek. Do wersji 2.05, klip video był skracany lub wydłużany tak, aby zachować oryginalny czas i prędkość odtwarzania (liczba klatek nie była zmieniana). W późniejszych wersjach sposób działania filtru został zmieniony tak, że klatki są dodawane lub usuwane, podobnie jak to realizuje filtr ConvertFPS.

### [yuy2]

# ConvertFPS

## ConvertFPS(clip, float new_rate[, int "zone", int "vbi"])

new_rate: nowa prędkość wyświetlania klipu. Może przyjąć wartości całkowite (większe od zera) lub zmiennopozycyjne. W trybie mieszania new_rate musi być co najmniej równy dwóm trzecim (66.7%) prędkości klipu wejściowego, w przeciwnym wypadku zostanie wyświetlony komunikat o błędzie. Ta minimalna prędkość została wprowadzona po to, żeby klatki nie były pomijane. Jeżeli chcesz jeszcze bardziej zmniejszyć prędkość wyświetlania (tj. poniżej prędkości minimalnej) to użyj trybu przełączania
zone: jeżeli występuje w składni to powoduje pracę filtru w trybie przełączającym. Wartość tego parametru jest liczbą całkowitą, większą lub równą zeru. Dla zone=0 filtr wykonuje "twarde" przełączanie, tzn. niezwłoczne wyświetlenie następnej klatki poniżej linii przełączania. Jeżeli zone>0 wtedy parametr ten określa wysokość obszaru przejściowego (w liniach), w którym następuje stopniowe mieszanie klatek. Dla klipów w pełnym PAL/NTSC (liczba linii pionowych równa 576 lub 480), zone=80 daje dobre efekty. Przejście pomiędzy klatkami jest realizowane w ten sam sposób jak przy filtrze PeculiarBlend. Wartość parametru musi być mniejsza lub równa liczbie linii pionowych klatki wyjściowej, która odpowiada czasowi trwania klatki wyjściowej. Wartość typowa to pięć szóstych lub sześć piątych wysokości klatki wyjściowej tj. kilkaset linii. Gdy wartość będzie większa niż 1.2*wysokość_klatki_wyjściowej to zostanie wyświetlony błąd
vbi: w trybie przełączania określa czy filtr powinien zastosować czasową korektę dla impulsu wygaszania pionowego (VBI). Wartość całkowita większa od zera określa wysokość (w liniach), przy której następuje pojawienie się impulsu wygaszania w klatkach wyjściowych. Wartości typowe dla PAL to vbi=49, a dla NTSC vbi=45 lecz nie są to wartości, które należy ściśle przestrzegać. Parametr vbi nie jest brany pod uwagę gdy filtr pracuje w trybie mieszania

Filtr próbuje zmienić liczbę wyświetlanych klatek na sekundę bez usuwania lub kopiowania klatek. Dzięki temu uzyskujemy płynną konwersję, podobną jak przy zastosowaniu oddzielnych przetworników obrazu. Klip na wyjściu będzie miał prawie taki sam czas trwania jak klip wejściowy, lecz liczba klatek zmieni się proporcjonalnie do współczynnika fps_klipu_wyjściowego/fps_klipu_wejściowego.
Filtr może pracować w dwóch trybach. Gdy parametr zone nie został podany to sąsiednie klatki zostaną ze sobą zmieszane w zależności od współczynnika proporcjonalnego do względnego odstępu pomiędzy klatkami ("tryb mieszania"). Gdy parametr zone został określony, to wtedy filtr spowoduje przejście do następnej klatki ("tryb przełączania"), gdy tylko pojawi się nowa klatka źródłowa. Przełączenie następuje zazwyczaj w połowie klatki docelowej. W tym trybie pracy zakłada się, że klip wyjściowy będzie odtwarzany w telewizorze, gdzie każda klatka (składająca się z dwóch pól) jest "generowana" od góry do dołu. Parametr zone określa wysokość obszaru przejścia, w którym następuje mieszanie klatek.
Tryb mieszania powoduje widoczne (w niewielkim stopniu) rozmazywanie ruchu. Jest to charakterystyczne zjawisko występujące przy konwersji prędkości wyświetlania, które często można zauważyć na taśmach video lub w programach telewizyjnych. Przy pracy z materiałem zawierającym przeplot ważne jest, żeby filtr operował na polach a nie klatkach (zobacz przykłady zamieszczone poniżej).
Filtr w trybie przełączania próbuje nie rozmazywać ruchu, lecz jego użycie powoduje niewielkie migotanie obrazu i pojawienie się artefaktów w scenach dynamicznych. Przy najazdach obraz może delikatnie drgać. Klatki w scenach statycznych, uzyskane po tej konwersji, powodują podzielenie klatek w scenach dynamicznych na segmenty przesunięte względem siebie w poziomie. Mogą także pojawić się widoczne przejścia pomiędzy klatkami. Pomimo tego klip wyjściowy jest mniej rozmyty niż w trybie mieszania.
Żaden z powyższych trybów nie stanowi doskonałego rozwiązania. Wybór trybu zależy od osobistych upodobań, a także od materiału, który ma być poddany konwersji. Tryb przełączania jest prawdopodobnie lepszym rozwiązaniem gdy materiał ma być wyświetlany na telewizorze, a nie na monitorze.
Konwersja prędkości wyświetlania jest z natury trudna. Filtr ten umożliwia wykorzystanie dwóch metod stosowanych w przetwornikach do użytku komercyjnego. Rezultaty uzyskiwane za pomocą tych metod są zazwyczaj dobre. W bardziej specjalistycznych systemach stosowane są algorytmy wykorzystujące interpolację ruchu. Są one trudne w realizacji, lecz gdy uda się je prawidłowo zaadoptować to dają znakomite efekty.
Po obróbce filtrem ConvertFPS, materiał nie powinien być poddawany kolejnej zmianie prędkości wyświetlania. Przy następnej konwersji rozmycie obrazu bardzo szybko wzrasta.
Filtr ten nie wpływa w jakikolwiek sposób na strumień dźwięku. Dźwięk pozostanie zsynchronizowany z obrazem pomimo tego, że będzie nieznacznie się różnił długością. Dzieje się tak, ponieważ klip może zawierać tylko liczbę klatek ze zbioru liczb naturalnych. Efekt ten będzie bardziej widoczny dla krótszych klipów. Różnica w długości nie powinna być brana pod uwagę.
Przykład konwersji NTSC->PAL:
AviSource("NTSC_clip.avi") # wczytanie klipu źródłowego
Bob() # rozdzielenie pola i interpolacja do pełnej wysokości
BicubicResize(768, 576) # zmiana rozdzielczości do wykorzystywanej w systemie PAL (720,576 dla standardu CCIR.)
ConvertFPS(50) # zmiana prędkość wyświetlania pola do prędkości używanej w PAL za pomocą trybu mieszania
SeparateFields.SelectEvery(4, 0, 3) # cofnięcie działanie filtra Bob, gdy pola parzyste są wyświetlane jako pierwsze;
# użyj SelectEvery(4, 1, 2), gdy pola nieparzyste są wyświetlane w pierwszej kolejności
Weave # dokończenie usuwania działania filtra Bob
Przykład ten można wykorzystać także w przypadku materiału NTSC ze źródłową klatką lub filmów poddanych konwersji telecine. W ostatnim przypadku lepszy efekt da użycie filtru do usuwania konwersji 3:2 pulldown (np. filtr Pulldown). Po usunięciu 3:2 pulldown należy przyspieszyć kilp z prędkości 23.976 do prędkości 25 klatek na sekundę.

### translated by Dj_AnT