Log in

View Full Version : Interlaced Chroma Artifacting


[MA]Debito
27th November 2006, 09:06
So yeah, I'm helping out a friend with his DVD backup and I can't seem to get it looking perfect.

Here's my problem: After I perform an IVTC to recover the progressive frames, the chroma occassionally becomes out of sync with the luma and leaves a nasty chroma ghost. I looked at practically every thread partaining to this issue with no solution.

Here are some screenies:

Source:
http://members.cox.net/debito/Source.png

IVTC'd:
http://members.cox.net/debito/Filtered.png

Here's my script:
dgdecode_Mpeg2Source("C:\Documents and Settings\debito\Desktop\MyHime\MyHime.d2v")

TFM()

TDecimate()

Any ideas of how to fix this? I've almost gone insane trying everything I can to make it look like a normal frame.

Thanks,
[MA]Debito

foxyshadis
27th November 2006, 11:22
Any short vob available to test against? I fixed that sort of problem a while back, but I don't remember when or how, and I don't have the source anymore.

[MA]Debito
27th November 2006, 19:36
As Requested, thanks for helping out. I know that the issue is primarily that the Chroma is interlaced but seen as progressive when fed through any player and AVS.

The Sample (M2V) (http://www.sendspace.com/file/84d05r)

scharfis_brain
27th November 2006, 20:01
the source is broken.

chroma had been downsampled incorrectly.

the only thing you can do is to blur the chroma in vertical after appliying the IVTC.

[MA]Debito
27th November 2006, 23:07
Butternuts, Yeah I used your merge chroma blur method and it looks alot better, but there's just those parts where you can really notice it.

Oh well, thanks anywho.

foxyshadis
27th November 2006, 23:10
Because, as always, I'm a big fan of complicated solutions to simple problems :p, here's the writeup of the brainstorm I came up with this morning:


MPEG2Source("D:\my-hime_ep1.demuxed.d2v", cpu=0)

global o=last
global t=tfm()

global pancomp = 0 # set 0 to use closest chroma if no match, instead of blurring

global cnext=t.mergechroma(deleteframe(0))
global cprev=t.mergechroma(duplicateframe(0))
global cblur=t.removegrain(0,11)
# swap removegrain for depan if you're adventurous

ethis=t.mt_edge()
enext=ethis.deleteframe(0)
eprev=ethis.duplicateframe(0)

global mnext=mt_logic(ethis,enext,"and")
global mprev=mt_logic(ethis,eprev,"and")

a1=scriptclip(t,""" combed?(max(dprev,dnext)>15*pancomp?(dprev>dnext?cprev:cnext):cblur):t
#subtitle(string(dprev)+", "+string(dnext))""")
a2=a1.FrameEvaluate("""
global dnext=combed?averageluma(mnext):0
global dprev=combed?averageluma(mprev):0
""")
a99=a2.FrameEvaluate("""global combed=o.iscombedtivtc()""")

a99


It'd be a lot prettier encapsulated into a function, for sure, but it does work surprisingly well. You'll just have to live with unrecoverable crap on pans, unless you want to figure out how to integrate depan into cblur.

pancomp=1 will look a little better, pancomp=0 will compress better if you use chroma me.

Didée
28th November 2006, 09:19
Small nitpick:

ethis=t.mt_edge()
enext=t.deleteframe(0).mt_edge()
eprev=t.duplicateframe(0).mt_edge()
calculates the very same edgemak three times; the only difference is the offset. So it'd be sufficient to calculate only one time & just do the offset:

ethis=t.mt_edge()
enext=ethis.deleteframe(0)
eprev=ethis.duplicateframe(0)

;)

foxyshadis
28th November 2006, 10:52
Haha, good catch. Commented out the subtitle I left on accident too. >.>

Mug Funky
29th November 2006, 04:49
having not seen the sample, but seeing several similar ones, i wonder if this'd work:

tfm(order=1,chroma=true).decimate()

works on my bollywood.

Chainmax
29th November 2006, 04:53
I had a similar problem (http://forum.doom9.org/showthread.php?t=70353) with the Spawn 1st Season set. I don't know wether the suggestions in that thread are outdated or not, but it might be worth a shot.