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
(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
(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
(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