PDA

View Full Version : Help identifying artefact


Vitecs
5th October 2006, 08:31
Hi All,

Please help me to name this artefact (attached magnified crop of unprocessed DV footage). See color bars on the dark area? Not sure it is ringing...

And, any chance to fight it?

Mug Funky
5th October 2006, 09:51
attachment not approved yet... but do you mean blocky colour on edges between bright coloured areas? if so it's an NTSC DV thing and not really avoidable (4:1:1 colour just looks like that), but you can mitigate it with things like the cedocida DV codec (free), and filters like reinterpolate411() (by trbarry IIRC).

if that's not the effect you mean, ignore my post :)

scharfis_brain
5th October 2006, 16:19
I don't get, what you mean. provide an unaltered sample picture. I can do the resize myself, if needed.

Vitecs
6th October 2006, 08:28
I can't attach full frame because of size - here is link to it:

http://s11.imagehosting.us/uploadpoint/imagehosting_upload_storage/nouser_1654/T0_-1_1654084.png

I don't think it is related to NTSC DV and color formats. I suspect camera coder makes it. These "spikes" in luma plane also. Appears only in X-axis (horizontal) and exact one pixel from each other.

foxyshadis
6th October 2006, 09:06
You mean combing? Aka interlacing? That's not an artifact, it's just how consumer video is recorded, and how TVs display it. There's a whole slew of deinterlacers/bobbers available if you want to transfer it to progressive format for computers.

Mug Funky
6th October 2006, 09:18
yikes! there's some kind of vertical combing going on there...

maybe try:

turnleft().tdeint(0,1).turnright() and see what happens...

[edit]

you also might want to try something like blur(1,0).unfilter(100,0)

you'll need to chase down the appropriate plugins (tdeint and unfilter)

Vitecs
6th October 2006, 10:40
yikes! there's some kind of vertical combing going on there...

maybe try:

turnleft().tdeint(0,1).turnright() and see what happens...

[edit]

you also might want to try something like blur(1,0).unfilter(100,0)

you'll need to chase down the appropriate plugins (tdeint and unfilter)


Let's go back to cropped picture in first message. I uderstand we have interlaced frame here. And field offset is 2 pixels. But I want you to look at the very right part of picture. Even "righter" then white comb. We have bright (oversaturated?) edge, and after it some "ringing". As long as we have "vertical" edge we also have vertical red lines to the right of it (let's ignore interlaced pixel offset)

While green object has only color bleeding (no questions here, we are in DV) the red and blue objests has luma spikes.

P.S. Sorry my ESL.

nibbles
8th October 2006, 18:05
In your raw png, I can see the red bleed out to the right.
Very noticeable! Your English.... is good! :)
So is this color bleed in a master video? A flaw in the camera?

Maybe design a small test pattern in Gimp.

Ccd's are more sensative to red, but they must have
compensated for that by now.

Checked your lens recently? Ok, good luck, nibs.

Vitecs
9th October 2006, 14:09
In your raw png, I can see the red bleed out to the right.
Very noticeable! Your English.... is good! :)
So is this color bleed in a master video? A flaw in the camera?

Maybe design a small test pattern in Gimp.

Ccd's are more sensative to red, but they must have
compensated for that by now.

Checked your lens recently? Ok, good luck, nibs.

Agreed, color bleeding quite large. But knowing it's NTSC DV (with specific color distribution) it doesn't bother me much.

What I do not understand is the nature of the bars to the right of the edge. And it is in the Luma plane, not Chroma. It might be result of some in-camera processing (sharping? edge-enhancing?) and I'm trying find out what this artefact is about. Then, maybe the way to fix it or, at least, how to avoid it?

Mug Funky
10th October 2006, 10:29
try one of the scripts i posted. i'm well aware that it's interlaced. that's why the script will flip the video sideways first. you'll retain an interlaced picture and lose the vertical combing (which is most probably due to some sharpening as you say. a lot of cameras capture a smaller picture than what gets captured... looks like this one is trying to hide it).

probably the easiest is blur(1,0).unfilter(100,0)

Vitecs
13th October 2006, 14:47
try one of the scripts i posted. i'm well aware that it's interlaced. that's why the script will flip the video sideways first. you'll retain an interlaced picture and lose the vertical combing (which is most probably due to some sharpening as you say. a lot of cameras capture a smaller picture than what gets captured... looks like this one is trying to hide it).

probably the easiest is blur(1,0).unfilter(100,0)

"blur()..." gives me predictable (but not aceptable) results - problematic pixels become "averaged".

With "Turn -> Interlace -> Turn" situation not so easy. Probably because I do not get how it should work? Should I add SelectEvery(2,1)?
Sometimes it even works (for several frames)! But it does nothing for static scenes?

I'd not blame Lens/CCD. As you can see it's relatively sharp, fine details - OK for 1MP. But something weird happens at edges...

scharfis_brain
13th October 2006, 16:42
could you upload an unaltered sample video (cut it using direct stream copy in VirtualDub) to www.rapidshare.de , please?

we need to make sure that this artifact doesn't occur while decoding. Further decoded PNGs look different than the video itself.

Vitecs
14th October 2006, 10:16
I've uploaded 10 frames to here: http://rapidshare.de/files/36682554/tocheck1.avi.html

Another fragment http://rapidshare.de/files/36682929/tocheck2.avi.html
shows that darkness is not necessary to this to happen: check the area where mountains' tops meet the sky - there are vertical lines as well (not so remarkable though).

Thanks.

scharfis_brain
14th October 2006, 10:48
loadplugin("c:\x\eedi2.dll")

function blurweirdlines(clip input)
{
input.converttoyv12().separatefields()
turnleft().assumeframebased()
separatefields()
merge(selecteven().eedi2(), selectodd().eedi2())
turnright()
assumefieldbased()
weave().converttoyuy2()
mergechroma(input)
}


avisource("tocheck1.avi", pixel_type="YUY2")

blurweirdlines()

Vitecs
16th October 2006, 12:20
scharfis_brain,

Thanks for pointing me to EEDI2. Played with it.

But, in general, it is still blur. I've got better results replacing merge() with overlay(mode="darken"), but I'm not sure if it is safe to do so? Should try with another clips.

Question about colorspaces commands in your script - is it important for TurnLeft/TurnRight?

Vitecs
24th October 2006, 07:36
To anyone who interested - I wrote a simple plugin which removes these bars.

The artifact probably specific for the camera (JVC-DVLx15), it seems not a common problem. I don't expect wide usage of the plugin (it's even hard to "name" it).

Feel free to ask for it,
Bye.