AssumeFPS

AssumeFPS (clip, float fps, bool "sync_audio")
AssumeFPS (clip, int numerator [, int denominator], bool "sync_audio")
AssumeFPS (clip1, clip2, bool "sync_audio")
AssumeFPS (clip, string preset, bool "sync_audio")

Filtr  AssumeFPS mění frekvenci snímků beze změny počtu snímků (ve výsledku se video bude přehrávat rychleji nebo pomaleji). Nastavuje se pouze parametr frekvence snímků.
Pokud je  sync_audio  true, mění také vzorkovací frekvenci zvuku pomocí stejného poměru, posunem výšky zvuku.

Je to také způsob změny vzorkovací frekvence jen pro audio samotné.

Ve  v2.55, pokud je  clip2  přítomen, snímková frekvence klipu  clip1 bude přizpůsobena do souladu s klipem clip2. Je to užitečné, když chcete přidat dva klipy s mírně rozdílnými snímkovými frekvencemi.

Ve  v2.57 , je režim práce s ohledem na frekvenci snímků trochu pozměněn. Hlavním problémem je, že je uživatelům povoleno pracovat s desetinnou snímkovou frekvencí, ale standarty NTSC (FILM a Video) a PAL vyžadují snímkovou frekvenci jako poměr. Kromě toho AviSynth exportuje snímkovou frekvenci jako poměr, takže když zadáte desetinné číslo, bude převedeno na zlomek. Poměry standartů jsou dány takto 24000/1001 pro 23.976 (FILM) a 30000/1001 pro 29.97 (Video). Když zadáte tato desetinná čísla, exportují se AviSynthem jako poměry, ale ne jako standartní poměry. Jedním z důvodů je, že takové desetinné hodnoty jsou jen přibližné (připomeňte si, že  24000/1001 = 23.9760239760...),  takže jak má AviSynth vědět jaký správný poměr vybrat? Pro překonání tohoto problému, může uživatel použít AssumeFPS(24000,1001) nebo jednoduše AssumeFPS("ntsc_film").

Jiný problém je, že převedené desetinné hodnoty byly (ve v2.56 a starších) exportovány s 64 bitovou přesností, vedoucí k velmi velkým čitatelům a jmenovatelům, které způsobovali padání některých přehrávačů. Pro překonání tohoto problému, je přidán vnitřní chytrý desetinný-poměr (smart float-ratio), a snímkové frekvence jsou přesně aproximovány poměry malých čísel. Například, AssumeFPS(23.976) je přeměněn na AssumeFPS(2997,125) což si můžete ověřit pomocí Info.

Přednastavení:

standart čitatel jmenovatel
"ntsc_film" 24000 1001
"ntsc_video"  30000 1001
"ntsc_double" 60000 1001
"ntsc_quad" 120000 1001
"ntsc_round_film" 2997 125
"ntsc_round_video" 2997 100
"ntsc_round_double" 2997 50
"ntsc_round_quad" 2997 25
"film" 24 1
"pal_film" 25 1
"pal_video" 25 1
"pal_double" 50 1
"pal_quad" 100 1

Příklady PAL +4% Telecine převod:

AVISource("FILM_clip.avi")			#Načíst 24fps klip
LanczosResize(768,576)				#Změnit velikost na rozměr snímku PAL se čtvercovými pixely.
AssumeFPS(25, 1, true)				#Převést frekvenci snímků na PAL, také přizpůsobit audio.
SSRC(44100)					#Obnovit audio vzorkování na standardní hodnotu.

Zrychlení +4% se obvykle používá pro filmy s 24fps na PAL televizích. Mírné zvýšení výšky a tempa diváci PAL materiálů snadno akceptují.

AssumeScaledFPS

AssumeScaledFPS (clip, int "multiplier", int "divisor", bool "sync_audio")

Filtr AssumeScaledFPS  mění frekvenci snímků beze změny počtu snímků. Čitatel je násoben parametrem multiplier, jmenovatel je násoben parametrem divisor, výsledný zlomek pro FPS normalizován, pokud buď výsledný čitatel a nebo jmenovatel převyšuje 31 bitů výsledek je zaokrouhlen a upraven. To umožňuje přesné racionální zvětšení, které se použije pro vlastnosti FPS klipu.

Pokud je  sync_audio  true, mění se také vzorkovací frekvence audia ve stejném poměru, výšky výsledného zvuku jsou posunuty.

Dostupný od  v2.56.

ChangeFPS

ChangeFPS (clip, float fps, bool "linear")
ChangeFPS (clip, int numerator [, int denominator], bool "linear")
ChangeFPS (clip1, clip2, bool "linear")
ChangeFPS (clip, string preset, bool "linear")

ChangeFPS mění frekvenci snímků mazáním nebo duplikováním snímků.

Do  v2.05 , se video prostřihávalo nebo vyplňovalo aby se zachovala rychlost a čas přehrávání (počet snímků se neměnil). V pozdějších verzích se způsob práce změnil a počet snímků je zvyšován nebo snižován jako v  ConvertFPS.

Ve  v2.54, byla doplněna volba  linear = true/false pro ChangeFPS. To nutí AviSynth požadovat snímky v lineární podobě, když jsou snímky přeskakovány. Výchozí je true.

Ve  v2.56, pokud je přítomen   clip2  , bude frekvence snímků klipu  clip1  upravena podle klipu  clip2.

Ve  v2.57, bylo tochu pozměněno chování k poměru frekvence snímků. Viz AssumeFPS.

Příklady převodů PAL->NTSC :

AVISource("PAL_clip.avi")			# Načíst klip
Bob(height=480)					#Oddělit pole a interpolovat je na plnou výšku.
BicubicResize(640,480)				#Změna velikosti snímku na NTSC se čtvercovými pixely.
ChangeFPS(60000,1001)				# Převést frekvenci snímků na NTSC, duplikováním polí.
SeparateFields.SelectEvery(4,0,3)		# Vypnout Bob, sudá pole první. Použijeme SelectEvery(4,1,2) pro liché pole první.
Weave						# Ukončit vypnutí Bob.

Efekt je podobný jako u 3-2 telecine pull down. Pravidelní diváci PAL materiálů si mohou všimnout trhání pohybu, které diváci NTSC materiálů lehce ignorují jako u filmů zpracovaných pomocí telecine.

ConvertFPS

ConvertFPS (clip, float new_rate, int "zone", int "vbi")
ConvertFPS (clip, int numerator [, int denominator], int "zone", int "vbi")
ConvertFPS (clip1, clip2, int "zone", int "vbi")
ConvertFPS (clip, string preset, int "zone", int "vbi")

Tento filtr se pokouší převést frekvenci snímků klipu clip na new_rate bez vypouštění nebo vkládání snímků, za předpokladu plynulého převodu s výsledkem podobným jako u speciálních převodních zařízení. Výstup bude mít (téměř) stejnou dobu jako  clip , ale počet snímků bude proporcionálně změněn k poměru cílové a zdrojové frekvence snímků.

Ve  v2.56, je-li přítomen clip2, bude upravena frekvence snímků klipu clip1 podle klipu clip2.

Ve  v2.57, bylo tochu pozměněno chování k poměru frekvence snímků. Viz AssumeFPS.

Filtr má dva pracovní režimy. Pokud není volitelný argument zone  přítomný, pak váženě smíchá video snímky, s proporcionálním koeficientem smísení snímku ve vztahu k délce ("Blend Mode"). Pokud je   zone  přítomen, přepne se z jednoho video snímku na další ("Switch Mode") vždy když začne zdrojový snímek, t.j, obvykle někde ve středu cílového snímku. Switch Mode předpokládá, že výstup bude zobrazen na obrazovce TV kde je každý snímek skenován od shora dolů. Parameter zone udává výšku přechodové oblasti ve které ve které bude daný snímek smíchán s následujícím.

Blend Mode vyvolá viditelné, třebaže slabé, rozmazaní pohybu. Je to typický artefakt převodu snímkové frekvence a lze ho vidět i na komerčních videokazetách a TV programech. Když pracuje s prokládaným videem, je důležité nechat filtr pracovat na jednotlivých polích, ne na prokládaných snímcích. (Viz příklady níže.)

Switch Mode je pokus vyhnout se rozmazání pohybu, ale toho je dosaženo za cenu mírného blikání a pohybových artefaktů. Horizontální a vertikální roztažení může ukázat slabé chvění. Dále snímky z tohoto přechodu ukazují  "lomené" nebo "křivé" vertikální čáry v pohyblivých scénách. Přechod od scény ke scéně může nastat ve středu snímku. Přesto však, výsledek vypadá méně rozmazaný než v režimu "Blend Mode".

Žádný režim není ideální. Který použít, to závisí na osobních preferencích a na zaznamenaném materiálu, který budeme převádět. Switch Mode je pravděpodobně použitelný pokud výstup budeme zobrazovat na TV, a ne na počítačovém monitoru.

Převod frekvence snímků je v podstatě složitý. Tento filtr implementuje dva rozšířené způsoby používané komerčními poloprofesionálními (Prosumer-level) převodními systémy. Výsledky bývají obvykle docela dobré. Složitější systémy aplikují algoritmy interpolování pohybu, což je obtížné provést správně, ale pokud se to správně provede vede to k nejvyšší kvalitě.

Zaznamenaný materiál převedený tímto filtrem by neměl být znovu převáděn. Rozmazání při dalších převodech rychle narůstá.

Audio data nejsou tímto filtrem dotčena. Audio zůstává synchronní, nicméně délka audio dat může být mírně rozdílná než u video dat po převodu. Je to proto, že může obsahovat jen celý počet snímků. Tento efekt bude zřetelnější u kratších klipů. Rozdíl v délce by měl být ignorován.

Parametery:
new_rate Cílová frekvence snímků. Může to být celé nebo desetinné číslo. V režimu Blend Mode, new_rate musí být nejméně 2/3 (66.7%) frekvence zdrojového videa, jinak se zobrazí zpráva o chybě. Je to ochrana proti vynechávání snímků. Pokud potřebujete nižší frekvenci snímků, použijte režim Switch Mode.
zone (Volitelný) Je-li zadaný, přepne filtr do režimu Switch Mode. Celá čísla větší nebo rovná nule. Pokud je nula, filtr použije tvrdé přepnutí, t.j. okamžitě zobrazí následující snímek pod linií přepnutí. Pokud je větší než nula, udává výšku (v řádcích) přechodové oblasti, kde jeden snímek plynule přejde do druhého. zone= 80 přináší dobré výsledky pro video plné velikosti (480/576 aktivních řádků). Přechod je proveden stejným způsobem jako v PeculiarBlend(). zone musí být menší nebo rovno počtu řádků cílového snímku což koresponduje době zdrojového snímku. To je typicky 5/6 nebo 6/5 výšky cílového snímku, t.j., několik set řádků. Pokud zadáte vyšší hodnotu zobrazí se chyba.
vbi (Volitelný) V režimu Switch Mode, zadává, že má filtr provést  časovou korekci vertikálního intervalu zatemňování ((Vertical Blanking Interval-VBI). Celé číslo větší než nula, ukazuje výšku VBI cílového snímku, v řádcích. Typicky vbi= 49 pro PAL a vbi= 45 pro NTSC, ale tyto hodnoty nejsou kritické. Ignoruje se v režimu Blend Mode.

Příklady převodu NTSC->PAL:

AVISource("NTSC_clip.avi")         	# Načíst klip
Bob(height=576)				# Oddělit pole a interpolovat je do plné výšky.
BicubicResize(768,576)			# Změna velikost snímku na PAL s čtvercovými pixely. (Použít 720,576 pro CCIR.)
ConvertFPS(50)                          # Převést frekvenci polí na PAL, použitím Blend Mode.
SeparateFields.SelectEvery(4,0,3)       # Vypnout Bob, sudá pole první. Použít SelectEvery(4,1,2) pro liché pole první.
Weave                                   # Ukončit vypnutí Bob.

Tento příklad bude pracovat také s NTSC materiálem založeným na snímcích, dokonce s filmy zpracovanými pomocí telecine. Pro filmový materál, získáte lepší výsledky použitím filtru opačného telecine a zvýšením snímkové frekvence z 23.976 na 25fps.

Ne všechny hodnoty parameterů jsou kontrolovány na smysluplnost.

Změny:

v2.57 Přidána volba přednastavení; změněno chování frekvence snímků; YV12 a RGB podpora pro ConvertFPS, opraven poměr smíchání
v2.56 přidána volba clip2 do ChangeFPS, přidán AssumeScaledFPS
v2.55 přidána volba clip2 do AssumeFPS
v2.54 přidán parametr  linear= true/false do ChangeFPS

$English Date: 2006/12/06 20:33:16 $

Český překlad:28.5.2008