Log in

View Full Version : That's a moiré


kurish
3rd November 2012, 01:56
Hello all,

I'd be grateful for any input on reducing the moire patterning shown below (shutters in the first image, shirt in second.) A sample vob is here (http://speedy.sh/DY43y/moire.vob) (20mb/25 seconds).

It's even worse in playback, as the pattern fluctuates.

Because the patterning is irregular and localized, I don't believe DeFreq or FFTQuiver will be of use. Searching the forum for "moire" does yield a number of hits, but I was unable to find anything directly applicable. User um3k did post a few alphas of the promisingly-titled NoMoreMoire function (http://forum.doom9.org/showthread.php?p=1462548#post1462548), but it's intended for different material and I can't get it do anything except crash avisynth, anyway.

http://i.imgur.com/b2b0t.jpg

http://i.imgur.com/0ykbi.jpg

A few minor specifics, for the record:
Source is a commercial, PAL DVD
Screenshots are straight from the DVD; I just cropped by 100 from the top and bottom
Chroma will be nuked with greyscale()
Source has many other issues, obviously!

Thank you for reading, and for any suggestions.

kurish
3rd November 2012, 04:49
Uploaded 8 seconds to youtube for easier reference. (https://www.youtube.com/watch?v=OD46rRt_tQ0&feature=youtu.be)

matfra
3rd November 2012, 06:08
Can you explain me what is a moire ??

kurish
3rd November 2012, 08:49
the uncomfortably mesmerising effect of two (or more) overlapping sets of lines

http://upload.wikimedia.org/wikipedia/commons/b/bb/Moire02.gif

cretindesalpes
3rd November 2012, 10:56
You could try this. It cannot remove the moire patterns but makes the motion smoother. It also removes most of the light fluctuations but the downside is that the video becomes a bit soft and small moving objects like falling leaves tend to smear or disappear.
MPEG2Source ("moire.d2v")

Crop (0, 104, 0, 364)
o = last

AssumeFrameBased ().AssumeTFF ()
SeparateFields ().SelectOdd ()

a = Blur (0, 1).Blur (0, 1)
a = a.TemporalSoften (4, 30, 30, 15, 2)
a = a.BicubicResize (o.Width (), o.Height (), 1, 0)
sup_a = a.MSuper (chroma=false)
vec = sup_a.MAnalyse (chroma=false, multi=true, delta=3, blksize=16, overlap=8, search=5, searchparam=4, DCT=5)

nnedi3 (field=0, dh=true, nns=4, U=false, V=false)
sup = MSuper (levels=1, chroma=false)
premdg = last
MDegrainN (sup, vec, 3, thSAD=1000)

rst = 1 # Increase this if you want to restore more grain
dif = mt_makediff (last, premdg)
difr = dif.mt_lut ("x 128 - abs "+String(rst)+" - 0 max x 128 < -1 1 ? * 128 +")
premdg.mt_adddiff (difr, u=-128, v=-128)

# Display and comparison
Interleave (o, last)
PointResize (o.Width (), 358, src_top=3, src_height=358)
StackVertical (SelectEven ().Subtitle ("original"), SelectOdd ().Subtitle ("filtered"))

Edit : result (http://www.mediafire.com/download.php?imm05ss694yrdt2)