While Blu-ray sources tend to be easier to work with compared to DVD, the quality of the video is still dependent on the source that it was mastered from. They are often mastered from one of the following source types; upscales, film, and high definition digital media. While most Blu-rays tend to already have clean or remastered video, each source type may require a different set of filters to help touch up the visual quality. Many sources will also need to crop to remove any blank space from the edges. The order for the crop function variables is left, top, right, bottom; the right and bottom variables require negative values.
(NOTE: Some quality issues in the sample images may not be as noticeable on small screens, viewing the sample images on a large screen is recommended.)
(IMPORTANT: Make sure to refer to an aspect ratio calculator when cropping to avoid distortion. The default color space for DVDs will require cropping by multiples of 2.)
This actually one of the most common source types for anime due to the fact that even today many series are animated at resolutions lower than 1920Ă—1080 and are upscaled in post production. This often leaves pixelated artifacts along the edges, especially when there are contrasting colors, and Santiag is recommended for handling this. Below is an example of this visual flaw and an AviSynth script for correcting it.
AviSynth Script Example
#Input videoLWLibavVideoSource("FMAB_t04.mkv")#Remove Aliasingsantiag(strv=1,strh=1,type="sangnom")VapourSynth Script Example
#Import VapourSynth Coreimport vapoursynth as vscore = vs.get_core()#Import Sharpening Functionimport havsfunc as haf#Input videovideo = core.lsmas.LWLibavSource(r'FMAB_t04.mkv', format="YUV420P8")#Remove Aliasingvideo = haf.santiag(video,strv=1,strh=1,type="sangnom")#Sets Video Outputvideo.set_output()These sources are digitally captured from the film and many are also remastered to remove visual defects. Usually they have very few defects, aside from film grain and possibly color banding on gradients, so minimal filtering is needed to improve the visual quality. MDegrain, which is part of MVTools, is recommended for handling sources with heavy amounts of film grain. Below is an example of this visual flaw and an AviSynth script for handling it.
AviSynth Script Example
#Input videoLWLibavVideoSource("Ghost_in_the_Shell_t00.mkv")#Removes heavy film grain by reading two frames back and aheadsuper = MSuper(pel=2, sharp=1)backward_vec2 = MAnalyse(super, isb = true, delta = 2, overlap=4)backward_vec1 = MAnalyse(super, isb = true, delta = 1, overlap=4)forward_vec1 = MAnalyse(super, isb = false, delta = 1, overlap=4)forward_vec2 = MAnalyse(super, isb = false, delta = 2, overlap=4)MDegrain2(super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400)VapourSynth Script Example
#Import VapourSynth Coreimport vapoursynth as vscore = vs.get_core()#Input videovideo = core.lsmas.LWLibavSource(r'Ghost_in_the_Shell_t00.mkv', format="YUV420P8")#Removes light noise and minor blocking by reading two frames back and aheadsuper = core.mv.Super(video, pel=2, sharp=1)backward_vec2 = core.mv.Analyse(super, isb = True, delta = 2, overlap=4)backward_vec1 = core.mv.Analyse(super, isb = True, delta = 1, overlap=4)forward_vec1 = core.mv.Analyse(super, isb = False, delta = 1, overlap=4)forward_vec2 = core.mv.Analyse(super, isb = False, delta = 2, overlap=4)video = core.mv.Degrain2(video, super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thsad=400)#Sets Video Outputvideo.set_output()Other film sources may only contain light film grain, however gradients and subtle color changes may contain color banding. Using a Spatio-Temporal filter such as FFT3DFilter or FFT3DGPU is recommended to reduce noise and Flash3kyuu Deband for handling any color banding. Below is an example of these visual flaws and an AviSynth script for correcting them.
AviSynth Script Example
#Input videoLWLibavVideoSource("LAIN_t01.mkv")#Removes film grain and smooths the imagestrength = 2FFT3DFilter(bw=6, bh=6, ow=3, oh=3, plane=0, bt=1, sigma=strength)FFT3DFilter(bw=216, bh=216, ow=108, oh=108, plane=0, bt=1, sigma=strength/8, sigma2=strength/4, sigma3=strength/2, sigma4=strength)#Removes banding by ditheringFlash3kyuu_deband()VapourSynth Script Example
#Import VapourSynth Coreimport vapoursynth as vscore = vs.get_core()#Input videovideo = core.lsmas.LWLibavSource(r'LAIN_t01.mkv')#Removes film grain and smooths the imagestrength = 2video = core.fft3dfilter.FFT3DFilter(video, bw=6, bh=6, ow=3, oh=3, plane=0, bt=1, sigma=strength)video = core.fft3dfilter.FFT3DFilter(video, bw=216, bh=216, ow=108, oh=108, plane=0, bt=1, sigma=strength/8, sigma2=strength/4, sigma3=strength/2, sigma4=strength)#Removes banding by ditheringvideo = core.f3kdb.Deband(video)#Sets Video Outputvideo.set_output()High definition digital sources typically have very few defects and require minimal filtering to touch up the visual quality. The most common artifact you will encounter will be color banding from insufficient dithering of gradients and Flash3kyuu Deband is recommended for correcting this visual flaw. Below is an example of this visual defect and an AviSynth script that addresses it.
AviSynth Script Example
#Input videoLWLibavVideoSource("Haruhi_t00.mkv")#Removes banding by ditheringFlash3kyuu_deband()VapourSynth Script Example
#Import VapourSynth Coreimport vapoursynth as vscore = vs.get_core()#Input videovideo = core.lsmas.LWLibavSource(r'Haruhi_t00.mkv')#Removes banding by ditheringvideo = core.f3kdb.Deband(video)#Sets Video Outputvideo.set_output()Some sources animated digitally in high definition may contain added film grain for style. That type of video can be handled the same way in which film sources are handled. Refer to that section for filter ideas and example scripts.