Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 2nd November 2005, 15:43   #1  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
The present haloing knocked me off the chair!

... But when hitting the ground, I had a raw idea worth to try:

Code:
 rad = 3.0   #  radius for halo removal
 ss  = 1.5   #  radius for supersampling / ss=1.0 -> no supersampling
 o   = last
 ox  = o.width()
 oy  = o.height()
 
 x      = o.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0)
 y      = yv12lutxy(o,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2)
 z1     = repair(o,y,1)
 maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss))
 minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss))
 z2     = o.lanczosresize(m4(ox*ss),m4(oy*ss))
 z2     = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy)

(ss == 1.0)  ?  z1  :  z2

return last
#----------
function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) }
No tweaks (could be done), no safety checks about ranges & so (probably needed), just your source image with raw halo press-down:

__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)

Last edited by Didée; 2nd November 2005 at 17:24. Reason: z1, not z ... and ss instead of 1.5 ...
Didée is offline   Reply With Quote
Old 2nd November 2005, 16:39   #2  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
I don't see that much haloing in the source frame (probably because it's so messy, I can provide cleaner frames with halos if you want) but I'm going to try it, thanks .

[edit]Could you arrange it into a function? I don't know how to include it on the script.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 2nd November 2005, 16:43   #3  |  Link
yaz
n00b ever
 
Join Date: May 2002
Posts: 627
vouw ... nother impressive script from didée
what i can't get :
- what is z1 ? ( i guess, it's the 'repaired' clip )
- why is 1.5 is hardcoded in the supersampling part ( i guess, that'd be ss instead )
... or am i on a wrong way ?

thx
y
yaz is offline   Reply With Quote
Old 2nd November 2005, 16:54   #4  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
Quote:
Originally Posted by yaz
- what is z1 ...
- why is ...
Dunno. Falling from the chair, I landed on my head ... straight thinking impossible.

Hey, it's just a sudden glance, quickly scribbled, and seems to do [at least] something right. I almost assure you there'll be some overflow-errors in the LUT ... can't evaluate that now.


For Chainmax:
Code:
function abcxyz(clip clp, int "rad", int "ss")
{
rad = default(rad, 3.0)   #  radius for halo removal
ss  = default(ss,  1.5)   #  radius for supersampling / ss=1.0 -> no supersampling

ox  = clp.width()
oy  = clp.height()
 
x      = clp.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0)
y      = yv12lutxy(clp,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2)
z1     = repair(clp,y,1)
maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss))
minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss))
z2     = clp.lanczosresize(m4(ox*ss),m4(oy*ss))
z2     = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy)

return( (ss==1.0) ? z1 : z2 )
}

function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) }
Obviously and as usual, RemoveGrain/Repair and MaskTools are needed.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)

Last edited by Didée; 2nd November 2005 at 17:23. Reason: z1, not z ... and ss instead of 1.5 ...
Didée is offline   Reply With Quote
Old 2nd November 2005, 17:19   #5  |  Link
FredThompson
Registered User
 
FredThompson's Avatar
 
Join Date: Feb 2002
Location: Charlotte, NC USA
Posts: 1,984
Just for snicks and grins, look at the first post in this thread and see if enlarging, then noise filtering (maybe even a little heavier), then shrinking, then LimitedSharpen will help. http://forum.doom9.org/showthread.php?s=&threadid=68494 The sample images are gone but the results was wonderful. Maybe, just maybe, this would make the aberrations more aberrant...

FWIW, some folks combat that horrible blockiness in very similar areas by playback with ffdshow and adding a little noise. It can help break up the outlines just enough to fool our eyes during playback.

edit: Hah! I knew all this seemed too familiar: http://forum.doom9.org/showthread.php?s=&threadid=64432
__________________
Reclusive fart.
Collecting Military, Trains, Cooking, Woodworking, Fighting Illini, Auburn Tigers

Last edited by FredThompson; 2nd November 2005 at 17:38.
FredThompson is offline   Reply With Quote
Old 2nd November 2005, 21:12   #6  |  Link
AVIL
Registered User
 
Join Date: Nov 2004
Location: Spain
Posts: 408
@Chainmax

Quote:
AVIL: I used FFT3DFilter at sigma=6 and bt=3 (alone and with TemporalSoften) but it didn't do much to the rainbows.
Try with a script like :

avisource("your.avi")
fft3dfilter(sigma=3,sigma2=3,sigma3=12,sigma4=3,bt=3,plane=1)
fft3dfilter(sigma=3,sigma2=3,sigma3=12,sigma4=3,bt=3,plane=2)

In my case the rainbows are middle-sized so I use heavy denoising en sigma3. Real colour are more afected by sigma4, then I use a moderate value for it. Sigma and sigma2 copes whit subtle rainbows. You can raise this values but in the first example I think it isn't necessary.

Anyway, bifrost and smartssiq are very effective filters. In fact you can combine it:

From bifrost's manual.

Quote:
Bifrost(scenelumathresh=1.5,altclip=SSIQ(11,100,true),interlaced=true)
But i found fft3dfilter more suited for me, in part for YUY2 support, in part for the easy in tunning the filter.
AVIL is offline   Reply With Quote
Old 3rd November 2005, 01:59   #7  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Didée, you are THE MAN!!! By replacing the FFT3DFilter line with a default call to abcxyz, the halos are completely gone and the result is almost identical to the last screen I posted!! . I'll post the three screens with this filterchain soon.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 3rd November 2005, 02:56   #8  |  Link
FredThompson
Registered User
 
FredThompson's Avatar
 
Join Date: Feb 2002
Location: Charlotte, NC USA
Posts: 1,984
Didée does make some really good cleaning stuff. There are those, however, who think he's a shill for CPU manufacturers :P

Methinks I'll try this on some DV moire (camcorder shots of moving roller conveyor) and see how it does. Maybe it will also help with laserdisc moire.
__________________
Reclusive fart.
Collecting Military, Trains, Cooking, Woodworking, Fighting Illini, Auburn Tigers

Last edited by FredThompson; 3rd November 2005 at 04:05.
FredThompson is offline   Reply With Quote
Old 3rd November 2005, 22:38   #9  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Here are the three screens with the last filterchain:



[link removed, screenshot appears now on page 3]



The first one looks pretty much the same as the last attempt, but the second and third one look worse. They are, however, rare special cases that will probably be attenuated(sp?) by x264's deblocking (0,0 has proven too weak so I'll go for 2,2) anyway. I will encode a sample in a taxing sequence and upload it for you guys to examine. Again, thanks for all the input .
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.

Last edited by Chainmax; 15th November 2005 at 22:17.
Chainmax is offline   Reply With Quote
Old 3rd November 2005, 22:51   #10  |  Link
FredThompson
Registered User
 
FredThompson's Avatar
 
Join Date: Feb 2002
Location: Charlotte, NC USA
Posts: 1,984
You could play with MDeblock http://www.mdeblock.de.tf/

I like the results of LimitedSharpen but it's dog slow. The basic idea, modifying the extremes of the sharpening, could be put into dll sharpeners and they'd probalby run a lot faster. My Athlon XP 2200s run HC best profile at 5 fps with LimitedSharpen, ~30 fps without it. Something to keep in mind because it dramatically impacts encoding time.
__________________
Reclusive fart.
Collecting Military, Trains, Cooking, Woodworking, Fighting Illini, Auburn Tigers
FredThompson is offline   Reply With Quote
Old 3rd November 2005, 23:30   #11  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Since these are 25min episodes, I can just compress to ffdshow's YV12 huffyuv and then feed that into MeGUI. I'll try MDeblock soon and report back, although it kinda bugs me that it never was developed over v0.3 and that it went pretty much unnoticed here.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 4th November 2005, 08:56   #12  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
@ Fred

Get this and this, try Soothe(LimitedSharpen(ss_x=1.0,ss_y=1.0,Smode=4),last,24) [or 16], and compare again fps and result.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 4th November 2005, 10:46   #13  |  Link
FredThompson
Registered User
 
FredThompson's Avatar
 
Join Date: Feb 2002
Location: Charlotte, NC USA
Posts: 1,984
I'm now seeing 10 fps instead of 5 and the oversharp whities are reduced without losing the sharpness of the black lines. Thanks. DVD-RB Pro is now an overnight task, not a "sometime tomorrow" task. Thanks!!

What is the last parameter? I used your first suggestion, not the second. This is some sort of influence limiter?

The thread for Soothe mentioned the possibility of support files for LimitedSharpen. I wonder if anyone other than hanc messes with Fortran. Seems like a natural way to get some speed in the math routines.

Tried UnSharpMask instead of LimitedSharpen but the results just weren't that great. LimitedSharpen seems to do a very nice job of sharpening hard edges and leaving relatively smooth areas less modified. Quite helpful for animation, especially with the relatively low amount of oversharp artifacts.
__________________
Reclusive fart.
Collecting Military, Trains, Cooking, Woodworking, Fighting Illini, Auburn Tigers

Last edited by FredThompson; 4th November 2005 at 10:57.
FredThompson is offline   Reply With Quote
Old 5th November 2005, 12:52   #14  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
I made a test encode of an expecially taxing sequence. You can download it from [link deleted].
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.

Last edited by Chainmax; 7th November 2005 at 00:39.
Chainmax is offline   Reply With Quote
Old 10th November 2005, 05:41   #15  |  Link
Anonymouses
Guest
 
Posts: n/a
I'd just like to throw in that the dehaloing script you wrote Didée is pretty nice. Gets rid of the halos as good as BlindDeHalo but doesn't make the video blurry and doesn't thin out black lines.

Source:



Using abcxyz():



Using BlindDeHalo2(2.5,2.5,160):



And thanks for pointing out BiFrost Chainmax as it is a nice rainbow filter.

With BiFrost and abcxyz():


Last edited by Anonymouses; 10th November 2005 at 07:27.
  Reply With Quote
Old 10th November 2005, 07:23   #16  |  Link
Anonymouses
Guest
 
Posts: n/a
I don't want to get too off topic here, but I can't get over how nice that dehalo script is. Here's another couple of samples comparing it against BlindDeHalo2 which I used to use. I changed the rad so that it takes float values.

Source:



default abcxyz():



abcxyz(rad=1.75), turned down the radius to preserve the small bright areas, and HQDering(255) to catch the bit of ringing that the lowered radius doesn't get:



BlindDeHalo2(2.5,2.5,160):


Last edited by Anonymouses; 10th November 2005 at 07:34.
  Reply With Quote
Old 10th November 2005, 11:50   #17  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Very nice indeed. I'm going to test abcxyz (I renamed it to DDeHalo, i.é: Didée's DeHalo ) on my test source that has lost of small details and see how it compares to HQDering, FixVHSOverSharp and BlindDeHalo3.

Anonymouses, I recently made a separate thread wher I ask for feedback on my Trigun encoding attempts. I'm mulling over two alternatives and would appreciate your feedback.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 10th November 2005, 12:08   #18  |  Link
Anonymouses
Guest
 
Posts: n/a
Quote:
Originally Posted by Chainmax
Very nice indeed. I'm going to test abcxyz (I renamed it to DDeHalo, i.é: Didée's DeHalo ) on my test source that has lost of small details and see how it compares to HQDering, FixVHSOverSharp and BlindDeHalo3.
Well at least in my tests I like to use both the dehaloer, with the radius turned down from default to stop it from messing with small bright areas, and using HQDering to pick up the haloing that is left behind due to the smaller radius. Though even at lower radiuses does get rid of more of the halo then just HQDering alone even when its set to 255.

Last edited by Anonymouses; 10th November 2005 at 12:12.
  Reply With Quote
Old 10th November 2005, 12:39   #19  |  Link
Anonymouses
Guest
 
Posts: n/a
Chainmax just curious, how bad is the blocking on the R1 discs or is it pretty isolated? Looking at some of those shots with the pretty bad blocking and having seen how bad the rainbows are on the R1 discs, I'm glad that I bought the R3 boxset.
  Reply With Quote
Old 11th November 2005, 01:06   #20  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
It's pretty nasty, but it is isolated too . It appears mostly on Vash's costume and a few rare times in sky scenes as well. I can upload a vob sample with the intro if you want to check it out.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.