View Full Version : Vertical Streaks in DV-Capture
kh5
4th December 2008, 18:25
Hello everybody,
I recently taped a children's musical with a Sony VX1000, which I happed to get for that occasion and used for the first time. On the LCD of the camera everything seemed fine, but when I captured the tapes to my PC I saw that there were some very strange vertical streaks of various lengths everywhere in the video, mainly in bright areas (see attached file).
Now obviously I cannot retape the whole thing, so I was wondering if anybody here has an idea how I could at least remove those streaks to some extent.
IanB
4th December 2008, 22:32
What DV codec are you using?
Try cedocide!
Leak
4th December 2008, 22:49
Try cedocide!
ITYM "Cedocida" (http://www.free-codecs.com/download/Cedocida_DV_Codec.htm)... ;)
np: Tocotronic - Kapitulation (Kapitulation Live)
kh5
4th December 2008, 23:35
Try cedocide!
That didn't help. I actually think it really is on the tape. When I look at it on the camera LCD I can sort of see the streaks now that I know they are there. Before I thought it was just reflections on the dresses of the children. I also tried capturing with a different camera and it's still the same.
I had the zebra function turned on while recording, but I don't think that should get recorded on tape, or would it normally?
I think all that I can do now is to try to get the streaks somehow smoothed out... But how? I had some success with RemoveDirtMC (more) and DeSpot (a little), but it's not really perfect.
Isn't it somehow possible to select all the white (or black) pixels and smooth them out with the ones around them?
I'm also happy to hear about any other solutions.
*.mp4 guy
5th December 2008, 00:08
function removestreak(clip c, int "thr", bool "post"){
thr = default(thr, 50)
post = default(post, false)
c
m = Levels(255-thr, 255, 255, 0, 255, false).tweak(sat=0)
#fix = mt_luts( last, last, mode = "med", pixels ="0 0 -1 0 1 0", expr = "y" )
fix = mt_convolution(horizontal="-1 8 0 8 -1", vertical="1", u=2, v=2)
mt_merge(last, fix, m)
post == true ? mt_luts( last, last, mode = "med", pixels ="0 0 -1 0 1 0", expr = "y" ) : last
return(last)}
I tested this out and it works pretty well. I don't know how it will do on the whole video, and I'm too lazy to upload a screengrab, but it worked pretty flawlessly on your sample.
thr sets how far from absolute white a pixel has to be to get included in the mask. It may just be the jpeg compression introducing variation that isnt there, but I had to set this pretty high to get it too work, it works in pc levels, so 0 (do nothing to 255 process everything) if thr is set excessively high, artifacts from the blur kernel will propogate the streaks across the image.
post activates an aditional, whole picture median blur (only in the horizontal, so its isn't that destructive) to get rid of any leftoers, but reduces quality, so it is off by default. It may however be necesary to deal with overall variation throughout the video consistently
there are about a million and one ways this could be made better, but it seams to work fine as it is.
example usage: removestreak(60, true)
or: removestreak(thr=60, post=true)
Gavino
5th December 2008, 00:41
m = Levels(255-thr, 255, 255, 0, 255, false).tweak(sat=0)
Is that a typo or do you really mean a gamma of 255.0 ?
*.mp4 guy
5th December 2008, 00:44
The gamma is that high just to make sure that everything that isn't black is completely white, instead of mostly white. All the levels clip is doing is creating a mask, so absurd settings work perfectly well.
Gavino
5th December 2008, 00:59
The gamma is that high just to make sure that everything that isn't black is completely white, instead of mostly white. All the levels clip is doing is creating a mask, so absurd settings work perfectly well.
Thanks, I see.
I think Levels(255-thr, 1, 255-thr, 0, 255, false) would also work.
kh5
5th December 2008, 14:52
Cool! Thanks a lot. It works quite well. I have to turn the blur on to remove everything, but I'll have a look if it is ok without it when the video is playing.
I never understood the maths behind these things though. I tried to do something on my own, but I don't even understand how convolution works, so it's probably hopeless :)
Anyways, that really helped me a lot. Thanks.
2Bdecided
9th December 2008, 11:18
Very strange - I'd love to know how that problem occurred. You're right about the Zebras - they certainly shouldn't appear on tape!
If you used a dependable (lossless DV) capture program like WinDV, it would be interesting to see a 1 second DV-AVI fragment of the original.
Cheers,
David.
kh5
10th December 2008, 20:14
Here you go: The sample is here (http://www.siebold-design.de/streaks/Streaks-1sec.avi).
It really seems to have to do with brightness. I have long stretches of the video where it is quite dark an none of the artifacts occurs. And when they occur it's mostly on the white dresses of the children and on their faces. What would speak for zebra is that the streaks are not only white but also black in some spots. But I just had a look at the manual and it expressively states that the zebra doesn't get recorded... Well, strange anyhow.
2Bdecided
11th December 2008, 12:15
They might be sensor faults - maybe the CCD is dying?
Most are peak white, but many aren't - pity - that would have been an easy fix! Maybe they were all peak white as they left the sensor, but have got mangled by the DCT compression in DV.
Cheers,
David.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.