The following warnings occurred:
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.3.12-nmm1 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/printthread.php(287) : eval()'d code 2 errorHandler->error_callback
/printthread.php 287 eval
/printthread.php 117 printthread_multipage



Selur's Little Message Board
[HELP] NTSC SD master, best De-Interlace? - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: [HELP] NTSC SD master, best De-Interlace? (/thread-1925.html)

Pages: 1 2 3


RE: NTSC SD master, best De-Interlace? - Selur - 05.08.2021

I used DPIR as deblocker, but that deblocker isn't available in normal builds or dev builds.
Using PP7 with CQ around 8 should also do the trick.


RE: NTSC SD master, best De-Interlace? - shijan - 05.08.2021

As it was explained earlier - if your source is telecined, use TIVCT or VIVTC instead of QTGMC
Halos may appear during digitalization (in-camera oversharpening), so use FineDeHalo if you see halos around object edges .
CAS is simply best and very unique sharpener that sharpens without adding new halos.
Resize to height 1080  and use Resizer NNEDI3. It is near universal must have option.
Color Matrix Rec.601 to Rec.709 color space needed when you upscale SD from cameras DVD to HD.

SMDegrain will remove grain and noise without softening image. But don't use too much noise reduction. In your sample it looks like normal film grain that is a essential part of the film image. Film grain structure is larger and more visible if film was shoot on 16mm film.
Sometimes digital noise also may look pretty.


RE: NTSC SD master, best De-Interlace? - Miranda - 05.08.2021

Thanks - is there also a way to change the pixel aspect ratio to square?


RE: NTSC SD master, best De-Interlace? - shijan - 05.08.2021

Yes, i forget about this. Set pixel aspect ratio to 1:1.
Also if source frammed and have unusual aspect it is recommended to crop black edges and letterbox to 1440x1080 or to 1920x1080
Also i usually setup preferences like this to remember rezising settings:
[Image: 0iGOJSQ.jpg]


RE: NTSC SD master, best De-Interlace? - shijan - 05.08.2021

And by the way, no need to use Deblock filter if your video was captured from tape directly to ProRes 422HQ. And if it is really ProRes 422HQ, but not basic ProRes or ProRes Proxy.
Deblock needs only for more ancient DV or DVD mpeg2, mpeg1 sources that always have some amount rectangle blocky compression artifacts.
But in your example image i see blocks same as Selur noticed. Maybe they are due JPEG image compression, or due video codec itself.


RE: NTSC SD master, best De-Interlace? - Selur - 06.08.2021

@shijian: since ProRes also uses macroblocks, what makes you thing that deblocking is always unnecessary when using ProRes?
(and no ProRes is not lossless)


RE: NTSC SD master, best De-Interlace? - shijan - 06.08.2021

ProRes uses macroblocks but also use very high bitrate in 422 HQ, 444 and 444XQ modes. So it is always lossless visually. It is professional industry codec.

macroblocks only will be visible with something like MPEG2 DVD or ProRes Proxy which use limited bitrate.

For example same file:
MPEG2 = 8Mb/s
ProRes 422 HQ = 56Mb/s


RE: NTSC SD master, best De-Interlace? - Selur - 06.08.2021

Quote:So it is always lossless visually
Not always. Running a compression loop will produce compression artifacts since the format is not lossless.

Quote:It is professional industry codec.
So is basically any wildly used video format.
Which video format then isn't a 'professional industry codec'?
Just because some NLE uses format X doesn't make it beyond approach good.
A lossy format is a lossy format, 'visually lossless' is just a marketing term.
If you have loss you can make it visible.

Even Apple states:
Quote:.. offers visually lossless preservation of the highest-quality professional HD video that a single-link HD-SDI signal can carry
see: https://support.apple.com/en-us/HT202410
They never claimed that their format is always visually lossless, btw. most folks would say the same for H.264 with a rate factor of 13 or below.
Here have been quite a few discussions about what 'visually lossless' really means and as far as I know Apple never gave a statement about it.

Cu Selur


RE: NTSC SD master, best De-Interlace? - shijan - 06.08.2021

I just try to explain that using Deblocker filter on SD file that use 56Mb/s compression is totally useless, because you never see any blocks artifacts with that bitrate.


RE: NTSC SD master, best De-Interlace? - Selur - 06.08.2021

Quote:I just try to explain that using Deblocker filter on SD file that use 56Mb/s compression is totally useless, because you never see any blocks artifacts with that bitrate.
using a highly artifical example
# Imports
import os
import sys
import ctypes
import vapoursynth as vs
core = vs.core

# Import scripts folder (need to be adjusted)
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))

# Loading Support Files  (need to be adjusted)
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AdaptiveGrain/adaptivegrain_rs.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ColorFilter/Retinex/Retinex.dll")
import vapoursynth as vs
# getting Vapoursynth core

# Import scripts
import havsfunc

clip = core.std.BlankClip(format=vs.YUV422P8, width=720, height=576, length=1000, color=[128, 128, 128])

# adding grain using GrainFactory3
clip = havsfunc.GrainFactory3(clp=clip)

clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8, range_s="full")
# color adjustment using Retinex
clip = core.retinex.MSRCP(input=clip, sigma=[25,80,250], fulls=True, fulld=True)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10, range_s="full")

clip.set_output()
compressing it with ProRes, and comparing the encode against the script:
# Imports
import os
import sys
import ctypes
import vapoursynth as vs
core = vs.core

# Import scripts folder (needs to be adjusted)
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))

# Loading Support Files (needs to be adjusted)
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AdaptiveGrain/adaptivegrain_rs.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ColorFilter/Retinex/Retinex.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
import vapoursynth as vs
# getting Vapoursynth core

# Import scripts
import havsfunc

clip = core.std.BlankClip(format=vs.YUV422P8, width=720, height=576, length=1000, color=[128, 128, 128])

# adding grain using GrainFactory3
clip = havsfunc.GrainFactory3(clp=clip)


clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8, range_s="full")
# color adjustment using Retinex
clip = core.retinex.MSRCP(input=clip, sigma=[25,80,250], fulls=True, fulld=True)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10, range_s="full")

# path needs to be adjusted
clip2 = core.lsmas.LibavSMASHSource(source="E:/Output/testing.mov")

difference = core.std.MakeDiff(clip, clip2)
# Output
difference.set_output()
shows quite a few differences,.....

If you want to seriously look into this you should do it in another thread.

Cu Selur