Forum Forum (
-   Restore, Filter, Improve Quality (
-   -   ES15 VOB vs. AIW: look the same after filtering? (

ThumperStrauss 02-08-2022 10:50 AM

ES15 VOB vs. AIW: look the same after filtering?
1 Attachment(s)
I was curious to see with my own eyes the difference in quality between:
  1. video captured using the Panasonic ES15 built-in DVD recorder, and
  2. video captured using the ES15 as a passthrough to an AIW 9600XT AGP card (captured with VDub1911).
In both cases, I turned off NR settings in the ES15. Both videos were from an 8mm tape, played back on a Sony TRV66 using S-Video cables.

The VOB file created by the DVD recorder displays video that blocky (is that the correct term?). It also looks worse in a hard-to-describe way when played back in MPC compared to the version captured with the AIW 9600XT.

Then I ran the two videos through Hybrid using the same settings and upscaling both. I'm still experimenting so maybe I overdid it. Maybe the enhanced video is too cartoony. But I can't see a meaningful difference between the two videos once I applied the same filters to them. See the attachment (PNG inside ZIP) and zoom in.

What does this all mean?
  1. There really is a difference between the two filtered videos that my eyes don't perceive.
  2. I overdid the filters and therefore ruined whatever made the AIW version better in the first place.
  3. For some types of 8mm footage, a blocky VOB file might be good enough if one applies a bunch of filters later on.
I'm not planning on throwing way my new (old) Windows XP appliance, but I was surprised by what I found in the filters videos.

Here is the Hybrid/Vapoursyth script I used in both cases

# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SharpenFilter/AWarpSharp2/libawarpsharp2.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/CTMF/CTMF.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/HQDN3D/libhqdn3d.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeblockFilter/Deblock/Deblock.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DebandFilter/Flash3kDeband/flash3kyuu_deband.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import adjust
import havsfunc
# source: 'J:\ES15 DVD recorded version.mkv'
# current color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: top field first
# Loading J:\ES15 DVD recorded version.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="J:/ES15 DVD recorded version.mkv", format="YUV420P8", cache=0, prefer_hw=0)
# making sure input color matrix is set as 470bg
clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume (top field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", InputType=0, TFF=True, TR2=0, SourceMatch=0, Lossless=0, EZDenoise=0.01, NoisePreset="Fast") # new fps: 29.97
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
# DEBUG: VsQTGMC changed scanorder to: progressive
# Color Adjustment
clip = adjust.Tweak(clip=clip, hue=3.00, sat=1.00, cont=1.00, coring=True)
# Color Adjustment using SmoothLevels
clip = havsfunc.SmoothLevels(input=clip, Ecurve=0)
# applying delocking using Deblock
clip = core.deblock.Deblock(clip=clip)
# cropping the video to 688x464
clip = core.std.CropRel(clip=clip, left=16, right=16, top=0, bottom=16)
# removing grain using TemporalDegrain
clip = havsfunc.TemporalDegrain(inpClip=clip, maxPxChange=1, HQ=2)
# Denoising using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", InputType=2, TR2=3, Sharpness=1.0, TFF=False, SourceMatch=1, Lossless=0, EZDenoise=0.01, NoisePreset="Fast")
# sharpening using AWarpSharp2
clip = core.warp.AWarpSharp2(clip=clip, blur=2, depth=20)
clip = havsfunc.DeHalo_alpha(clip)
clip = core.fmtc.resample(clip=clip, kernel="spline16", w=2136, h=1440, interlaced=False, interlacedd=False)
# letterboxing 2136x1440 to 2560x1440
clip = core.std.AddBorders(clip=clip, left=212, right=212, top=0, bottom=0)
# adjusting output color from: YUV420P16 to YUV422P10 for ProResModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10, range_s="limited")
# set output frame rate to 29.970fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Output

lordsmurf 02-08-2022 02:12 PM

I don't like all the filtering you're doing here. If you over-filter video, yes, it can look the same, and not in a good way. Video newbies have a bad habit of overfiltering. Don't. Resist that.

lollo2 02-08-2022 04:10 PM

It is difficult to judge from static pictures, but the filtered images seem to lead to a "plastic look". You should judge on the real video. You can post some sample here.

Concerning your question, a good restoration tends to generate a somehow "better" video, so the differences between the starting videos (AIW better than DVD-R) tends to decrease. For example the Deblock filter reduces the block artifacts cause by the mpeg2 compression (btw, you should not use this filter on AIW captures, except if your analog recording is from rom a low bitrate dvb-s or dvb-t source).
In addition, an over-filtering tends to "flat" and smooth the videos, so it is possible that they will differ less after processing.

Some comment about your filtering:
- too much denoise: TemporalDegrain is a strong filter, the less effective QTGMC denoise is redondant; in addition QTGMC routines on progressive inputs are not designed to denoise, but to remove artifacts caused by bad deinterlacing processes. Not your case, because you used QTGMC itself as deinterlacer.
- de haloing should be prior to sharpening, because this process enhaces the halo
- QTGMC sharpen by default, reduce its sharpen strenght while deinterlacing
- CAS and LSFmod introduce less artifacts than AWarpSharp2
- two color adjustements: SmoothLevels and Tweak are similar, use just one (btw, SmoothAdjust is more recent)
Just my opinion ;)

ThumperStrauss 02-08-2022 07:51 PM

2 Attachment(s)
Thank you for the tips. I will experiment more by using less.

All times are GMT -5. The time now is 08:16 AM

Site design, images and content © 2002-2022 The Digital FAQ,
Forum Software by vBulletin · Copyright © 2022 Jelsoft Enterprises Ltd.