-
Data: 2018-05-19 18:32:07
Temat: Re: Film poklatkowy
Od: Piotrne <p...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2018-05-19 o 14:51, Krzysztof Halasa pisze:
> W każdym razie generalnie lepiej zostawić materiał w formacie, w jakim
> jest, i wszelkie operacje przeprowadzać dopiero podczas wyświetlania -
> nie trzeba wtedy robić zmiany szybkości (obecny sprzęt potrafi zwykle
> pracować z dowolną szybkością wyświetlania), potrzebny jest tylko
> deinterlacing z podwojeniem FPS + (tylko jeden) upscaling.
Oczywiście oryginalnego materiału nie niszczę. Do oglądania na telewizorze
nadaje się bardzo dobrze. Ale po wysłaniu takiego nagrania na YouTube
zauważalnie spada jakość: przeprowadzana jest bardzo prosta konwersja
na 30 fps przez powielanie niektórych ramek (czasem w dziwny, nierównomierny
sposób) i obraz jest pomniejszany do 480 linii. Jedyne rozwiązanie
to przerobienie filmu lepszymi metodami przed wysłaniem.
Przy poprawnej konwersji 50 fps -> 60 fps "cienie" nie powstają.
To nie jest nakładanie / przenikanie sąsiednich kadrów, tylko wykrywanie
ruchu obiektów i generowanie pośrednich obrazów przez wyznaczenie
pozycji obiektów w "międzyczasie". Wykorzystywane są m.in. te same
biblioteki, co przy stabilizacji drgań obrazu na podstawie analizy
jego treści. Przy prawidłowym wykrywaniu ruchu możliwe jest dowolne
zwiększanie fps.
Poniżej - skrypt dla AviSynth wykonujący konwersję PAL -> 720p60.
Znalazłem kiedyś tutaj:
http://forum.doom9.org/archive/index.php/t-138285.ht
ml
i uzupełniłem o ładowanie niezbędnych pluginów (których trzeba poszukać
samodzielnie):
# start
# oryginalny film: DV PAL 720x576 4:3 50fps z przeplotem (interlaced)
# docelowy: 720p60 (720 linii, 4:3, 60 fps bez przeplotu)
PluginPath = "c:\Programy\AviSynth\plugins\"
LoadPlugin(PluginPath+"nnedi3.dll")
LoadPlugin(PluginPath+"masktools2-25.dll")
LoadPlugin(PluginPath+"RemoveGrain.dll")
LoadPlugin(PluginPath+"gradfun2db.dll")
LoadPlugin(PluginPath+"AddGrainC.dll")
LoadPlugin(PluginPath+"SmoothDeinterlacer.dll")
LoadPlugin(PluginPath+"mt_masktools-26.dll")
LoadPlugin(PluginPath+"nnedi3.dll")
LoadPlugin(PluginPath+"mvtools2.dll")
LoadPlugin(PluginPath+"nnedi2.dll")
LoadPlugin(PluginPath+"dfttest.dll")
LoadPlugin(PluginPath+"VerticalCleanerSSE2.dll")
LoadPlugin(PluginPath+"nnedi.dll")
LoadPlugin(PluginPath+"FFT3DFilter.dll")
LoadPlugin(PluginPath+"TDeint.dll")
LoadPlugin(PluginPath+"EEDI2.dll")
LoadPlugin(PluginPath+"RepairSSE2.dll")
LoadPlugin(PluginPath+"RemoveGrainSSE2.dll")
LoadPlugin(PluginPath+"SSE2Tools.dll")
Import(PluginPath+"LimitedSharpenFaster.avsi")
Import(PluginPath+"GradFunkMirror.avsi")
Import(PluginPath+"QTGMC-3.32.avsi")
LoadPlugin(PluginPath+"svpflow1.dll")
LoadPlugin(PluginPath+"svpflow2.dll")
LoadPlugin(PluginPath+"mvtools2.dll")
Import(PluginPath+"TempGaussMC_beta2.avsi")
Import(PluginPath+"InterFrame2.avsi")
directshowsource("Naganie_PAL_z_kamery_DV.avi")
#AssumeTFF()
AssumeBFF()
ConvertToYV12()
QTGMC( Preset="Slow" )
USS(960,720)
#Addborders(160,0,160,0)
#USS(1280,720)
Cores=2
SetMemoryMax(512)
#SetMTMode(3,Cores)
InterFrame(Cores=Cores,NewNum=60000, NewDen=1000)
Subtitle("2001-01-01 11:41:33", 40,650,90,119,"Arial",40,$ffffff)
Subtitle("2001-01-01 11:41:34", 40,650,120,149,"Arial",40,$ffffff)
Subtitle("Nagrał Piotr Fabian", 40,650,180,210,"Arial",40,$ffffff)
###
### function Ultimate Super Sample : USS()
### by LaTo INV.
###
### Need : nnedi, limitedsharpenfaster, gradfunkmirror, addgrain
###
### USS(input, ox, oy, PP1, PP2, PP3)
### ox = destination width
### oy = destination height
### PP1 = "Limited Sharpen Faster" post-processing
### PP2 = "GradFun2DB" post-processing
### PP3 = "Add Grain" post-processing
###
### Default : USS(last, 1280, 720, 100, 1.2, 5)
###
function USS(clip input, int "ox", int "oy", int "PP1", float "PP2", int "PP3") {
ox = default(ox, 1280)
oy = default(oy, 720)
PP1 = default(PP1, 100)
PP2 = default(PP2, 1.2)
PP3 = default(PP3, 5)
ix = input.width
iy = input.height
scaleX = ceil(float(ox)/float(2 * ix))*2
scaleY = ceil(float(oy)/float(2 * iy))*2
scale = scaleX > scaleY ? scaleX : scaleY
upscale2 = scale > 1 ? input
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=1).turnle
ft()
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=0).turnri
ght()
\ : input
upscale4 = scale > 2 ? upscale2
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=1).turnle
ft()
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=0).turnri
ght()
\ : upscale2
upscale8 = scale > 4 ? upscale4
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=1).turnle
ft()
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=0).turnri
ght()
\ : upscale4
upscale16 = scale > 8 ? upscale8
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=1).turnle
ft()
\ .nnedi3(dh=true,Y=true,U=true,V=true,field=0).turnri
ght()
\ : upscale8
process = upscale16
\ .LimitedSharpenFaster(ss_x=1.0,ss_y=1.0,strength=PP1
)
\ .gradfunkmirror(PP2)
\ .addgrain(PP3,0,0)
output = process.spline36resize(ox,oy)
return output
}
###
P.
Następne wpisy z tego wątku
- 20.05.18 03:25 Krzysztof Halasa
- 21.05.18 11:55 r...@k...pl
- 21.05.18 11:53 r...@k...pl
- 23.05.18 02:59 Marcin Debowski
Najnowsze wątki z tej grupy
- Trochę NTG - Vegas Pro
- Nikon D5500 i wyzwalanie migawki
- Canon 550D
- EOS 600D i balans bieli w filmach
- EOS 90D i sentymenty
- Skanowanie: Canon MG2550S vs HP OfficeJet 6950
- czas exif a czas modyfikacji pliku
- karta SD po formacie odzyskiwanie zdjęć i filmów
- Chess
- Vitruvian Man - parts 7-11a
- Eltec nie zyje?
- Steve McCurry
- Light - lajkowe klasyki od Chinczykow
- Forum o Sony serii A (alfa)?
- obrobka RAW na konputerze
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=