View Full Version : Pinky and the Brain artifacts (Solved)
Sagekilla
4th August 2008, 01:06
I've got myself a copy of the NA (Region 1 I believe?) Pinky and the Brain, the source has a bunch of annoying artifacts. I included a short (30s) sample of the intro where there's a lot of the artifacts. Anyone know what this is? Fieldblending? Interlacing? Screwed up combination of things?
Link to 30s source: http://www.mediafire.com/download.php?2mheagkn5oz
Edit: Problem solved, it was hard telecined.
Guest
4th August 2008, 01:43
What artifacts are you talking about?
It's hard telecined. After a simple:
telecide()
decimate()
...the only issue I see is some dot crawl on the text of the opening WB intro.
Are you from a PAL region and never ran into telecining before!? :)
Sagekilla
4th August 2008, 01:50
No, North america :)
I've ran into telecining before, I just usually did the "force film" in DGIndex though. Didn't know it was hard telecine :P
Sagekilla
4th August 2008, 01:56
Hm.. I did Telecide(1).Decimate() and Telecide(0).Decimate() and using either, I got some artifacting on the "Brain and the Pinky" on frame 372. Frame 480 also exhibits this, as does 488, 500, 504, 505 o_O
They all have something weird with them. TC + Decimate doesn't get rid of those.
Nightshiver
4th August 2008, 02:21
Don't put anything in the brackets... just telecide() Although I doubt this will cure what you are calling "artifacts". Can you post some images of these artifacts?
Sagekilla
4th August 2008, 02:26
Nevermind, I thought the fist parameter was "order" (which I set to 0), accidentally set the wrong parameter apparently. It does not like running at Telecide() however, since it's not getting any information on field order for some reason.
Edit: Any chance I could do anything about the dot crawl? I ran it through some MVDegrain3 to get rid of a little bit of artifacts, and it mildly helped with the Dot crawl, but not by much.
Guest
4th August 2008, 03:49
To force the correct field order if your source filter doesn't set it, use AssumeTFF() or AssumeBFF() before Telecide().
Use search, there are lots of threads on dealing with dot crawl.
Sagekilla
4th August 2008, 06:32
Thanks for your help all, I've finally gotten something very usable and nice looking:
Before
http://img.photobucket.com/albums/v621/Sagekilla/before.png
After
http://img.photobucket.com/albums/v621/Sagekilla/after.png
TheRyuu
4th August 2008, 09:01
I ran it through yatta and didn't find any problem spots in the small sample (in regards to interlacing, I would imagine a simple tfm().vinverse().tdecimate() would do fine for something which is hard telecine. (use TIVTC package because it works better stand alone then the decomb package)).
Furthermore... your screenshots show a widescreen pick but the original AR is 4/3...?
Mistake? :p
Blue_MiSfit
4th August 2008, 09:31
Looks much better, if a tad soft.
I might suggest running Toon() or some warp sharpening...
~MiSfit
lossless
4th August 2008, 09:32
care to share your filter chain sage? looks nice.
Sagekilla
4th August 2008, 13:12
@Dragon5152 Yes, I know I changed the AR, using WarpSharp. Even if it's slightly distorted in the center and moreso on the edges I prefer having a 4:3 source at least covering my monitor, the black bars are a bit unsightly for me. Personal choice, if you will :)
@Blue_MiSfit, I did in fact run Toon() and aWarpSharp(), my parameters still need a bit of tweaking. It'll be a bit soft until I fully tweak it for maximum sharpness, mostly due to the rather heavy filtering I used to get rid of artifacts certain portions my process introduced. Surprisingly, Toon() changed very little except in certain portions.
@lossless, I will soon. It's more or less a variation (or lack thereof) of a filter chain I worked on a few months ago.
Here's the newest results, from before, to after, to after with tweaking.
http://img.photobucket.com/albums/v621/Sagekilla/before.png
http://img.photobucket.com/albums/v621/Sagekilla/after.png
http://img.photobucket.com/albums/v621/Sagekilla/after2.png
Script will come in a few minutes, I have to clean it up and comment it.
Sagekilla
4th August 2008, 14:24
Here's the script I used, I might as well call it KitchenSink() because of how much stuff I used to filter my video. However, it's worked very well for me in the past on a number of different animated sources where lines became blurred, annoying artifacts were introduced, and where the video was generally crap. Please note, you WILL have to tweak this on a case-by-case basis, the original settings were far more tame for the last source I used it on.
# Get rid of the dot crawl
Checkmate(20)
# Now remove the hard telecine
Telecide(order=1).Decimate()
# A quick MVdegrain (Check Temporal Degrain on avisynth) helps with small
# temporal artifacts, Use if necessary, it's sometimes useful.
FastDegrain(degrain=3,ov=4)
# Darken the lines with Toon, I used a high strength because of how blurry
# the original lines were.
Toon(1)
# Antialias the lines and upsample to a higher resolution, it slows things down
# and is optional but in my experience, is very helpful to the quality.
# 2 and 3 for resizers is spline16 being used in place of other resizers.
AAA(1536,1152,30,30,2,3,chroma=true)
# Thin the blurry lines a bit more, and generally get rid of that blur period.
aWarpsharp(22,4,0.5,1)
# Sharpen the lines a bit, adjust soft and decrease strength as necessary
# to reduce any artifacting.
LimitedSharpenFaster(edgemode=1,strength=210,overshoot=1,soft=0)
# Dfttest works really great for smoothing out what should be a flat color
# over a large area. This got rid of artifacts introduced by toon earlier.
Dfttest(sigma=1.4,tbsize=3)
# Change the AR from 4:3 to 16:10 with WarpedResize, because I hate black columns
# to the left and right on widescreen movies. This is completely optional.
ConvertToYUY2().WarpedResize(1280,720,0.87,1.15).ConvertToYV12()
In function form:
# Function by Sagekilla
# Named so because it uses every single
# thing I could get my hands on.
function KitchenSink ( clip input, int "Xres", int "Yres", float "scale", float "linestr",
\ int "degrain", int "dWarp", int "qWarp", float "thWarp", int "sharpStr",
\ int "sharpSoft", float "sigma", int "tbsize", bool "AA", bool "sharp", bool "dehalo" )
{
o = input
Xres = default ( Xres, 1280 ) # Output width
Yres = default ( Yres, 960 ) # Output height
scale = default ( scale, 1.5 ) # Internal scaling factor
degrain = default ( degrain, 2 ) # MVDegrain radius
linestr = default ( linestr, 0.3 ) # Line darken strength
dWarp = default ( dWarp, 22 ) # aWarpSharp strength
qWarp = default ( qWarp, 4 ) # aWarpSharp quality
thWarp = default ( thWarp, 0.5 ) # aWarpSharp thinning
sharpStr = default ( sharpStr, 200 ) # Sharpening Strength
sharpSoft = default ( sharpSoft, 10 ) # Sharpening damping
sigma = default ( sigma, 1.4) # Dfttest strength
tbsize = default ( tbsize, 3 ) # Dfttest temporal size
AA = default ( AA, true ) # Toggle AA
sharp = default ( Sharp, true ) # Toggle sharpening
dehalo = default ( Dehalo, false ) # Toggle dehaloing
Xres2 = m16(Xres*scale)
Yres2 = m16(Yres*scale)
# A quick MVdegrain (Check Temporal Degrain on avisynth) helps with small
# temporal artifacts, Use if necessary, it's sometimes useful.
o = (degrain > 0) ? o.FastDegrain(degrain=degrain,ov=4) : o
# Darken the lines with Toon, I used a high strength because of how blurry
# the original lines were. Higher strength increases this effect, but may
# introduce artifacts if large values (1) are used).
o = (linestr > 0) ? o.Toon(strength=linestr) : o
# Antialias the lines and upsample to a higher resolution, it slows things down
# and is optional but in my experience, is very helpful to the quality.
o = (AA==true) ? o.AAA(Xres2,Yres2,25,25,1,2,chroma=true) : o
# Thin the blurry lines a bit more, and generally get rid of that blur period.
# Higher qWarp will increase cpu usage but quality. thWarp adjusts how
# much it will thin the lines, higher is for more thinning.
o = o.aWarpsharp(depth=dWarp,blurlevel=qWarp,thresh=thWarp,cm=1)
# Sharpen the lines a bit, adjust soft and decrease strength as necessary
# to reduce any artifacting.
o = (sharp==true) ? o.LimitedSharpenFaster(edgemode=1,strength=sharpstr,overshoot=1,soft=sharpSoft) : o
# Remove any halos sharpening introduced. I used default settings because
# I don't know what would be useful.
o = (dehalo==true) ? o.Dehalo_Alpha() : o
# Dfttest works really great for smoothing out what should be a flat color
# over a large area. This got rid of artifacts introduced by toon earlier.
# Increasing tbsize will make it work temporally.
o = (sigma>0) ? o.Dfttest(sigma=sigma,tbsize=tbsize) : o
# Scale back to intended output size.
o = o.Spline16Resize(Xres,Yres)
Return(o)
}
function m16(float num)
{
return int(num / 16) * 16
}
Nightshiver
8th August 2008, 03:58
lol, nice function :)
Sagekilla
8th August 2008, 04:07
Thanks, it's more or less a collection of filters more than something complex ;) The one thing I noticed was aWarpSharp and LimitedSharpenFaster gave me better quality on an upsampled image that was subsequently downsampled.
ash925
23rd August 2008, 20:56
I am trying to encode a dvd using kitchensink script.the thing is that when I try to load the avs script in megui or encode it I get green bars not uniform in shape(i.e. small or long)on the right side of the preview window.Megui has been updated to latest updates.Previous test clips from same dvd did not show the green line in encodes done before the megui update.the update included the x264 update and colormatrix update and some profiles.
Please help.
martino
23rd August 2008, 21:00
Make sure your source is mod16. aWarpSharp likes to bork on non-mod16 resolutions.
ash925
23rd August 2008, 21:20
The source is mod 16.I forgot to mention that the green bars are not always present but when they are, they are present for many frames continuously,as seen in the preview window.
ash925
24th August 2008, 10:58
It seems as the cause is awarpsharp function as removing it from kitchensink() causes the output to be without the green border bars.Can anybody recommend an equivalent function to awarpsharp with settings.Thanks in advance.
ash925
30th August 2008, 12:04
In case anyone is ever interested,I solved the problem by changing the scale factor in kitchensink().
Sagekilla
31st August 2008, 15:18
the reason why is likely because while your input was mod16, when it was upscaled internally it was no longer mod16. I'll attempt to fix this in a later version by forcing resize to mod16 at same AR and the borders being a repeat of the last line.
Example:
720x480 @ 1.5 scale --> 1080x720 mod8/mod16. BROKEN!
1024x768 @ 1.5 scale --> 1536x1152 mod16/mod16
Edit: I fixed the bug, videos will be upscaled mod16 but they will not be AR correct for internal processing. This should introduce only a tiny amount of error, which I doubt anyone will ever notice. Your video will look fine when it's output at the end of the script though, since it will be resampled to the correct AR.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.