Hi,
I've been trying to rescue some old home movies and was going to use hybrid as the end point encoder however, after much headache with artefact removal and decombing, looking deeper at things I'm unsure that the original footage captured is suitable for deinterlace in the first place. I'm using a blackmagic ultrastudio express which is supposed to be capturing 50i 625 however if played back through vlc and using a bob deinterlacer the video judders which to me seems like its not correctly interlaced in the first place if at all. I've had some success with hybrid at the deinterlacing with pretty much every relevant qtgmc and vapoursynth option turned on but I'm wondering if I could get some advice if theres a setting to correct the issue I'm having or if my capture is indeed causing the issue like I now suspect. Heres a link to a sample clip of what the source material is coming in as:
https://www.amazon.co.uk/clouddrive/shar...LbKcOLp8bA
Any help would be much appreciated.
Your input is flagged as progressive, you can overwrite this by enabling "Filtering->(De-)Interlace/Telecine->Overwrite input scan type to" and setting it to 'bottom field first'
Frame 104 to 188 are simply broken -> I would recommend to capture the source again.
Cu Selur
Hi Selur,
Thanks for the reply, I have been overwriting the field ordering as you said, my big issue is theres still a fair bit of stair-casing in some scenes, I've added santiag antialias and tried srestore, rcr, denoise and decrawl but it still seems some residual is there. Frames 104-188 are me rewinding the tape so ignore that. I'll try and select a scene which shows the issue most prominently when I get a chance.
Do that, if you can find a good sample I can have a look at it and maybe recommend something.
Cu Selur
Right so in the link theres 2 clips combined which demonstrate the issues. The mp4 has gone through hybrid with the best result I can muster so far, the mov is the grassvalley file which has come out of resolve (I think what resolve is spitting out looks wrong) and theres 2 folders with the original captured dpx files (have only managed to get the true frame rate via dpx sequence in resolve as none of the quicktime codecs do interlaced without upscaling to 1080i). Not sure if you'll have the means to view dpx but DJV_View is a good sequence viewer I use for previewing image sequences, to see the true colour you need to turn the colour profile off (image>colour profile). These files are pre colour correction but thought it may offer more insight into the problem. Link is
https://www.amazon.co.uk/clouddrive/shar...qZ5cyIOXFV
Thanks in advance!
Busy, atm. but will download the files and have a look at it later.
Will report back after that.
Cu Selur
You are feeding Hybrid with the "Staircasing clips.mov" , correct?
What filters do you apply?
What I tried (after loading the "Staircasing clips.mov" as source):
1. cropping the source 16 left, 16 right, 16 bottom
then:
2. deinterlacing with QTGMC (Vapoursynth, same frame rate: 25fps) and encoding with x264: the output is progressive and no staircases
3. deinterlacing with QTGMC (Vapoursynth, enabling bob: 50fps) and encoding with x264: the output is progressive and no staircases
uploaded the results temporary to:
https://drive.google.com/drive/folders/1...sp=sharing
---
I downloaded Davinci Resolve to look at the dpx files and I wonder: Why did you export to an interlaced format? (I assume "staircasing clips.mov" is an output from resolve)
What do you want to archive as 'end target' format?
I mean if you basically work with raw images in Resolve, why export as interlaced content and then deinterlace?
Cu Selur
Hi selur,
Thanks for the feedback, I can see the staircasing is much better in those clips however the 50fps clip you posted still only seems 25 to me, I've got the 50fps version side by side and it definitely doesn't look like its the correct frame rate. If I take the bob off then the staircasing disappears without issue but not getting much luck at 50fps, seems to be a one or other situation so far. I'm on 3500kbit, AVC profile High10, 5.2, preset placebo, calc precision 10-bit i420. Filtering QTGMC>placebo, bottom field, even and bob. Then have denoise>DFTTest hanning/hanning sigma 8/8. Srestore omode 6, speed -25, thresh 16, bob before, frate 50.00, mode 1. RCR>Vinverse2>Strength 2.70, max change 255. DeCrawl>LUTDeCrawl>Default settings. Antialias>Santiag>Default other than Neurons at 256 and PScnr level 2.
Reason for not deinterlacing in resolve is that I've not managed to get a bob output and everything ends up blended which I don't want, that plus I'm trying to use a high quality deinterlace to eliminate and combing and also make use of the other cleanup filters in hybrid. Resolve is great for colour work and HD/4K but its a bit lacking in cleanup tools for this kind of job unfortunately.
Quote:the 50fps clip you posted still only seems 25 to me,
It's the result of your source encoded with a bob deinterlacer.
Quote:Filtering QTGMC>placebo, bottom field, even and bob. Then have denoise>DFTTest hanning/hanning sigma 8/8. Srestore omode 6, speed -25, thresh 16, bob before, frate 50.00, mode 1. RCR>Vinverse2>Strength 2.70, max change 255. DeCrawl>LUTDeCrawl>Default settings. Antialias>Santiag>Default other than Neurons at 256 and PScnr level 2.
throwing out:
- srestore, since it doesn't make sense to use it since it's meant to reduce the frame rate, which you don't want
- saintiag: since I see no aliasing artifacts
I get the following script:
Code:
# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
import vapoursynth as vs
core = vs.get_core()
# Import scripts folder
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/EEDI3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import havsfunc
# Loading F:\Staircasing clips.mov using LibavSMASHSource
clip = core.lsmas.LibavSMASHSource(source="F:/Staircasing clips.mov")
# making sure input color matrix is set as unspec
clip = core.resize.Point(clip, matrix_in_s="unspec",range_s="limited")
# making sure frame rate is set to 25/1
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# with preset 'Very Slow' and 'Placebo' QTGMC is limited to 8bit YUV/GRAY only due to FF3dFilter
# setting field order to what QTGMC should assume
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Placebo", TFF=True)
# DeCrawling using LUTDeCrawl
clip = havsfunc.LUTDeCrawl(input=clip)
clip = havsfunc.Vinverse(clp=clip)
# denoising using DFTTest
clip = core.dfttest.DFTTest(clip=clip, twin=0)
# adjusting output color from: YUV422P8 to YUV420P10 for x264Model (i420)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, range_s="limited")
# Output
clip.set_output()
and no staircasing,..
Quote:Reason for not deinterlacing in resolve is that I've not managed to get a bob output and everything ends up blended which I don't want, that plus I'm trying to use a high quality deinterlace to eliminate and combing
Sorry, but here I can't really follow you. You got full frames in Resolve add interlacing and then aim to remove it. That simply doesn't make any sense to me.
You convert 25p into 25i to 50p, which basically is splitting a frame into two fields and then interpolate each field to a new frame. This doesn't really make sense to me, since it won't add any additional motion data (or details, on the contrary some might even get lost).
When aiming for 50p wouldn't it be better to use a frame interpolation filter like Interframe(SVP)/MVToolsFPS/SalFps3/FramerateConverter ?
Quote:I'm on 3500kbit, AVC profile High10, 5.2,
with that bitrate and at that resolution 5.2 doesn't really make sense,...
-> sadly I can't reproduce the staircasing (even when I add srestroe and Santiag)
Cu Selur
The source Hi8 is interlaced 50i not progressive which is why I'm trying to retain that until final export although how the dpx files combine the interlace into a single file is what made me question whether the source was correct originally as what resolve is kicking out doesn't seem to be working how I would expect.
I added Srestore and Santiag as desperation to see if anything changed, Srestore did nothing but Santiag did minor benefit. How do you add scripts to hybrid? Did not know this was an option.
As for High 10 that was to keep the project at 10 bit to avoid colour banding, not worried about bit rate, the restrictions didn't allow high10 at the default restriction so I just whacked it up to 5.2.
I think I may need to do some more digging regarding the capture.....
Right I think I've sussed the issue, just gone back to resolve and noticed field rendering was on in the export but not in the project settings so it was interpreting the interlaced footage as progressive in the timeline then like you said pushing back out to interlace. I've run the clip through hybrid and voila jaggys gone and frame rate is smooth as it should be! Thank you so much for looking into this though, the prompt of saying the footage was progressive originally finally made the click in my head where I was going wrong! (I think I have been living on coffee for too long).
I'll pop a few more quid your way for the trouble and to support this great tool!