Log in

View Full Version : blurry and overenhanced edges - help needed


zee944
18th October 2008, 12:23
Hey,

Can somebody tell me how could I improve these edges? They're overenhanced and blurry at the same time. So blurry LimitedSharpenFast fails to sharpen them. I've no idea how to fix this.

The most annoying thing that the edges are "ghosted". This may not be obvious at first sight (see third pic), but become very annoying after sharpening. Is there a way to get rid of them?

I'd appreciate any help.

http://i179.photobucket.com/albums/w286/zee944/TD_blurry_edges_1.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_blurry_edges_2.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_blurry_edges_3.jpg

thetoof
20th October 2008, 02:35
Have you tried warp-sharpening?

Sagekilla
20th October 2008, 04:57
You have really bad halos, that's all I can say.

I tried aWarpSharp + merge (so it isn't so shocking) which was useful to some extent:


ImageReader("blurry_halos.jpg").Crop(8,0,-8,0).ConvertToYV12()
src = last

warp = src.aWarpSharp(32,2,0.45)
merged = Merge(warp,src)

Interleave(src,merged)



try playing around with depth, blur, and threshold.

zee944
20th October 2008, 10:30
I've already applied this:

MergeChroma(aWarpSharp(depth=32, blurlevel=1, thresh=0.5, cm=1))

I've done this because of a chroma problem (greenish & purple halos). I got the advice here: http://forum.doom9.org/showthread.php?t=135546

The screencaps above are taken after appliing this, but the original source has these ghosted halos too. Thanks for the code, will try it out ASAP.

2Bdecided
20th October 2008, 11:32
I could tell you'd already done that awarpsharp trick, because it often adds green edges, which can be seen in your images.

To avoid this, you need to add (mirror?) borders, warp sharpen, crop borders.


For the current problem, there's always the various dehalo plug-ins, but I think they'll make your source far too soft. Maybe someone can suggest "gentle" parameters.

Cheers,
David.

buletti
20th October 2008, 21:20
Try to sharpen everything but the edges via
LimitedSharpenFaster(ss_x=1.5, ss_y=1.5, Smode=3, strength=160, Lmode=3, wide=false, overshoot=1, soft=0, edgemode=0)

halos will increase but you can treat halos separately or just tweak "strength".

Undead Sega
20th October 2008, 21:56
hahahaha, thats Twin Dragons! :D love that film!

if i am correct, if that the HK Laserdisc you are using? or the early issue DVD?

zee944
22nd October 2008, 09:52
ImageReader("blurry_halos.jpg").Crop(8,0,-8,0).ConvertToYV12()
src = last

warp = src.aWarpSharp(32,2,0.45)
merged = Merge(warp,src)

Interleave(src,merged)

This worked much better than I expected! And your settings seem to be the best - I've tried all the variations, but all of them looked worse. Although it's still not perfect, the result is now noticeable better. Thanks! :)

For the current problem, there's always the various dehalo plug-ins, but I think they'll make your source far too soft.
I've found DeHalo_alpha the best, but still caused more damage than good to the image. Isn't there a dehaloer which specifically aims that 'ghost edge' on the third pic? :confused:

Try to sharpen everything but the edges
Unfortunately LimitedSharpen doesn't look good on this source. I guess I've to reduce those halos before sharpening anyway.

if i am correct, if that the HK Laserdisc you are using? or the early issue DVD?
This is the French DVD, the best uncut version. I'm marrying it with the superior US version.

Didée
22nd October 2008, 12:05
warp = src.aWarpSharp(32,2,0.45)
merged = Merge(warp,src)
Hmh. Halo reduction is not so bad, however there is plenty of the typical ugly warpsharp-deformation. Brrr.

Tried something with aWarpSharp too, but in a more behind-the-2nd-next-corner way:

# Y'et A'nother H'alo R'educing script

function YAHR(clip clp)
{
b1 = clp.minblur(2).removegrain(11,-1)
b1D = mt_makediff(clp,b1)
w1 = clp.aWarpSharp(depth=32,blurlevel=2,thresh=0.5)
w1b1 = w1.minblur(2,1).removegrain(11,-1)
w1b1D = mt_makediff(w1,w1b1)
DD = b1D.repair(w1b1D,13)
DD2 = mt_makediff(b1D,DD)
clp.mt_makediff(DD2,U=2,V=2)
}
Not golden, but still. Maybe it could be improved a little, it's just an ad-hoc implementation of a basic idea.
Dependencies are mt_masktools, RemoveGrain.dll, Repair.dll, aWarpSharp.dll, MedianBlur.dll and MinBlur() as found in MCBob (or a few other places).

Assuming that your original source is 720*y, rather than 1024*y, it goes like this (http://www.mediafire.com/?nwjjxm2jzwo). (528 kB, Mediafire)

*.mp4 guy
22nd October 2008, 12:39
Ages ago I tried to harness the halo reduction abilities of awarpsharp, and it worked a bit, but wasn't great (line detection and all the problems that implies). This however seams to work quite well, I especially like what it does on interpolated images.

Sagekilla
22nd October 2008, 21:41
aWarpSharp still continues to confound me. I don't see any practical use outside of anime, and even there it's deformations from high values gives some funky results.

zee944
22nd October 2008, 23:00
Tried something with aWarpSharp too, but in a more behind-the-2nd-next-corner way:
This is fine, too. Very gentle, but still noticable. How should I increase the effect? (Just push up 'thresh'?)

I'll try to use it together with the Merge(aWarpSharp(32,2,0.45)) line Sagekilla suggested. I like how that fixes the blurry edges, while your function reduces the halos.

Didée
22nd October 2008, 23:12
An easy way to get it stronger is to just call it two times.;) - For a stronger effect with one instance, replace the "13" in the repair line with "12" or even "1". However, things get more n more destructive these ways. (Well, what else?)
To use warping for actual sharpening of the edges, it probably would be better to use much weaker settings fo aWarpSharp, and chain it some times. *.mp4 guy has shown different examples in the past, search for his posts/threads related to 'sharpening'.

martino
23rd October 2008, 00:07
aWarpSharp still continues to confound me. I don't see any practical use outside of anime...
Not really. It works rather well on live action too, for fixing up halos, edge noise, colour bleeding and so on.

What confounds me more is the fact that I just simply fail to see it as a sharpener no matter on what source I put it on and what settings I use.

Adub
23rd October 2008, 04:04
I have to admit, I really like YAHR(). It doesn't take any tweaking, and works pretty well on any source I through at it, as long as I have some post sharpening to compensate for the effect it has on non-halo's. This in combination with MC_Spuds and MCTemporalDenoise have been an answer to my prayers for a lot of tv shows recently.

zee944
23rd October 2008, 13:14
To use warping for actual sharpening of the edges, it probably would be better to use much weaker settings fo aWarpSharp, and chain it some times. *.mp4 guy has shown different examples in the past, search for his posts/threads related to 'sharpening'.

On "chaining" you mean something like this? (Found in SSSharpen function by *.mp4 guy)

awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)

awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)
awarpsharp(cm=0, depth=3, blurlevel=1, thresh=0.99)

Sagekilla
23rd October 2008, 14:09
Erm that's the idea usually, but that's a bit of a high threshold to be using there, even if it's very low depth.

*.mp4 guy
23rd October 2008, 15:25
Thats for use with lots of supersampling, if you applied that without SS you would get heavy artifacting. Tune it down to 3 or so repetitions, and maybe take thresh to .7, or .5 for use without SS. Or you could just use the original sub-function in its entirety.

Undead Sega
1st November 2008, 21:23
This is the French DVD, the best uncut version. I'm marrying it with the superior US version.

but i believe the Fortune Star DVD of the film is the best DVD version and uncut out there.

Nikos
2nd November 2008, 11:35
The right place for YAHR function is before or after denoising ?

Adub
2nd November 2008, 20:27
I don't think it really matters honestly. But why don't use just move that section of the script back and forth and preview it. That way you can see what looks best to your eyes. Right now, I have it running before my MC denoiser, and it looks fantastic.

Nikos
2nd November 2008, 21:28
Merlin i agree, but i am interesting from technical view which is the correct place for YAHR.
For example the right place for deblockers is before any other filter.

zee944
23rd December 2008, 20:56
:offtopic:

but i believe the Fortune Star DVD of the film is the best DVD version and uncut out there.

I've skimmed through this comment before. What Fortune Star do you mean? There is a Joy Sales DVD of Twin Dragons, which uses a non-remastered & non-anamorphic Fortune Star print upconverted to anamorphic, edge enhanced to death and quite noisy, too. Also an improper 25-->29.97i conversion with blended frames. Perhaps after reversing the blending back to 25p (which seems impossible to me), I could use some scenes from it, but overally it's about as poor as the French DVD above. Probably even more.

fjhdavid
4th March 2009, 11:24
Dear all and Didee,

I have recorded DVDs on a standalone DVD recorder with a RVB analog wire and I have the following color pattern (coming from DVE essential).

I tried YAHR (even two times) but it does not show significant improvement.

What is the problem and what could be the solution?

thanks
Francois

PS: Didee in the YAHR script, you choose cm=2 in the warpsharp (default setting), but why didn't you use the cm=1 settings to enable chroma warping with luma bump map (which is recommended by the author)?

Mug Funky
5th March 2009, 08:31
looks like the DVD recorder's applying some kind of chroma filter?

but why are you trying to sharpen bars? results wont be relevant to the pictures, and it's trivial to generate new bars.

Chainmax
16th November 2010, 02:21
Probably everyone knows it by now, but if you want to use this with SEt's aWarpSharp rewrite, you have to substitute that call with aWarpSharp2(depth=32,chroma=3).