VideoHelp Forum




+ Reply to Thread
Results 1 to 25 of 25
  1. Hello
    i have a new video with a new problem that i never got before..

    this is the problem:
    Click image for larger version

Name:	vlcsnap-2013-02-17-01h02m10s45.png
Views:	393
Size:	798.8 KB
ID:	16301

    I tried to move left the green by ChromaShift() but it doas not move that green Properly and make Things to looks worse..
    i now that it can't help..

    I thought to weaken only the green by hue/saturation/intensity(1.2) in VirtualDubMod and it is the closet raiper i got:
    Click image for larger version

Name:	2.jpg
Views:	338
Size:	273.0 KB
ID:	16303

    the hue/saturation/intensity(1.2) is Really WORSE plugin..

    how can i fix it?

    i uploaded a sample of the example..
    I hope the problem is not a nightmare for you

    It does seem like a disaster .. But I saw here on the forum worse disasters
    thanks for the helpers!
    Image Attached Files
    • File Type: avi 1.avi (74.70 MB, 113 views)
    Last edited by gil900; 16th Feb 2013 at 17:39.
    Quote Quote  
  2. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    No, the hue/saturation/intensity(1.2) pluigin is not the worst plugin. Happens to be quite good. What's worse is the way you've ruined this avi clip. Nothing you can do with it after it's gone into RGB32.
    Last edited by sanlyn; 25th Mar 2014 at 11:33.
    Quote Quote  
  3. A chroma shift obviously won't work. The green "bleeding" has something to do with over bright areas "bleeding" into the chroma channels, probably related to AGC, noise reduction, and/or sharpening circuitry in the the VHS deck. Try to get a cap that doesn't have the peaks clamped at Y=235. Then you'll need some smart algorithm that masks the peak intensities, massages them, shifts them to the right, then subtracts them from the image. A better sample with the bright area in the middle of the frame (with darker material on both sides) would be more helpful.
    Quote Quote  
  4. sanlyn, I would be happy if you teach me how to use the hue/saturation/intensity(1.2) correctly.
    and the cap is not RGB.. i have done a mistake when i cut this part from the capture. i didn't noticed that it worked through the script i worte( i even can see the script in the image..) i will upload a clear sample for you.

    jagabo, i don't understand what you say but i think that i will got it with example script on my new sample that i will upload.

    Both of you very help me!
    Thank you very much .. And I bless you for the help you have given here on the forum
    Quote Quote  
  5. I was intentionally being vague about the filtering because I don't understand exactly what is needed myself.
    Quote Quote  
  6. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    The h/s/i/ plugin isn't that difficult, and you can get similar effects with other filters. This one tends to be rather specialized.

    In any event, this can't be fixed in RGB. And I would echo jagabo's advice: you need a better capture, using any capture bright/contrast filters that are available in your capture software. But don't try to capture with noise or other fancy filters, because they are too slow. It would appear that your original capture is far too bright to begin with, so little can be accomplished with it as-is.
    Last edited by sanlyn; 25th Mar 2014 at 11:33.
    Quote Quote  
  7. i uploaded a new sample on YUY colorspace..


    i can't upload longer sample here but if it still not Enough information and you need longer sample so ask me and i will upload longer sample in a Private Message..
    Quote Quote  
  8. sory i has a problem in my Internet..

    here is the file:
    https://www.box.com/s/vgig63gqufm7jcrwr6tz
    Quote Quote  
  9. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Your original sample avi in post #1 was 706x566, done with VirtualDubMod (? ?). VDMod might be OK for a some purpoxses, but some newer plugins will not work properly in obsolete versions of VirtualDub. But I assume you had a reason for using it.

    The frame size has moved from 706x566 in the first avi version to 768x576 in the "new sample.avi" version. So I have no idea what is happening with this video. But if "new sample" represents your initial capture, it is FUBAR, and either fatally overexposed in-camera or completely destroyed in earlier processing of some kind. The capture itself is so bright that it is unworkable, even if you could find a way to repair the color.
    Last edited by sanlyn; 25th Mar 2014 at 11:33.
    Quote Quote  
  10. i know that it is impossible to fix it perfectly..
    and i didn't Expect this to happen because it is very clear that some of the image is burnt (Destroyed)
    so the goal is only to make the video to have a normal and bad looking Instead of crazy and bad looking.
    and the way to do it is to change the green colors to White so the final result will be at last normal..

    i don't know about a ways to do it( change Range of green colors to range of White colors in Each Pixel)

    and the reson why i using VirtualDubMod is this:
    This is, in my opinion, VirtualDubMod's most useful function and the main reason for its inclusion in the AMVapp. We've had a look at how you use Avisynth and I'm sure it seemed like an arduous chore to create these text files, load them up, look at them, go back and edit them, load them again.... Arduous no more. VirtualDubMod has a sophisticated Avisynth Script Editor that you can use to edit and see the changes in your avisynth scripts instantly.
    and i don't know what VirtualDubMod can't do. it will be good if you tell me.
    i still didn't got errors with plugins.. everything works perfect until now
    Quote Quote  
  11. Originally Posted by gil900 View Post
    i know that it is impossible to fix it perfectly..
    and i didn't Expect this to happen because it is very clear that some of the image is burnt (Destroyed)
    so the goal is only to make the video to have a normal and bad looking Instead of crazy and bad looking.
    and the way to do it is to change the green colors to White so the final result will be at last normal..

    i don't know about a ways to do it( change Range of green colors to range of White colors in Each Pixel)


    You don't change the green colors to white, you desaturate green . ie. "secondary color correction"

    It's more difficult to do in avisynth IMO (easier to do in other programs like NLE's , effects type programs - these have more tools for color work, and you can keyframe the changes - it might be that you need changes in the settings over time)

    Using tweak() you can specify a starthue and endhue with sat to narrow in on a hue range . You can use different tweak settings, e.g. one for green , one for yellow, etc..

    http://avisynth.org/mediawiki/Tweak

    e.g. for green you might use something like

    tweak(starthue=185, endhue=260, sat=0.4) #green

    Of course, you need to adjust the other colors and do more work with the levels as well , but hopefully that will get you started...
    Quote Quote  
  12. I'm only addressing the green "bleeding" or whatever you want to call it. The result isn't perfect, needs tuning, and there's still a long way to go. But here's the general idea. Source on the left, treated on the right (simple bob for the demo):

    Click image for larger version

Name:	f0.jpg
Views:	271
Size:	67.8 KB
ID:	16319

    Click image for larger version

Name:	f125.jpg
Views:	310
Size:	73.3 KB
ID:	16320

    The script is messy and could be done in fewer steps, but...

    Code:
    AviSource("new sample.avi") 
    AssumeTFF()
    Bob()
    src=last
    
    # build a mask
    ColorYUV(cont_u=-256, cont_v=-256) # luma only
    ColorYUV(off_y=-200) # eliminate pixels below 200, needs tuning
    BilinearResize(16,576) # low res for fuzzy image, needs tuning
    ConvertToRGB() # for general convolution
    GeneralConvolution(0, "0 0 0 1 0 -1 0 0 0") # emboss, we only want light to dark transitions
    ConvertToYUY2() # back to YUY2
    BilinearResize(768,576) # scale up to original size, intentionally blurry image
    Crop(0,0,-16,-0).AddBorders(16,0,0,0) # shift image to the right, may need tuning
    mask = ColorYUV(cont_y=200, gain_y=1200) # adjust contrast, brightness, needs tuning
    
    inv = MergeChroma(src, Invert(src)) # inverted colors
    
    Overlay(src, inv, 0, 0, mask)
    
    StackHorizontal(src,last) # for comparison
    The video also has purple/blue bleeding on the dark to light transitions. That could be handled similarly.
    Last edited by jagabo; 17th Feb 2013 at 22:11.
    Quote Quote  
  13. Thank you very much jagabo
    i will use it and try to understand how it works

    poisondeathray , I do not rule out the possibility of doing it any other software.
    i have "frame sarver" option in VirtualDubMod..
    but i need to know how it can be done on Sony Vegas.

    and i am looking for plugin for Sony Vegas that very similar to the ColorMil,,
    The point is that in VirtualDud/VirtualDubMod i can't set groups of filter by frame/time range..
    so that in some part of the video VirtualDud will use filter/s X and on other parts he will not use filter X and use other filter/s
    or i can?

    i know that it is possible in sony vegas..
    i need color settings that changes for the video. with ColorMill the color Setting will be the same for all of the video because it is
    VirtualDud/VirtualDubMod
    Quote Quote  
  14. Sometimes jagabo's scripts give me headaches it appears this one qualify for it! It does a fairly good job i gotta say
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  15. I recommend examining the mask as it's being built by adding return(ColorYUV(autogain=true)) at intermediate stages. The script needs a better way of blurring the mask. BilinearResize() to a small width then back up is very crude and causes several problems (small bright patches are missed, the mask pumps as the camera pans, etc.). I'll look into that later. Also, something like GeneralConvolution() that works in YUY2 would be better (though it's just used in building the greyscale map so it's not big deal).
    Quote Quote  
  16. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Masking and masktools are so poorly explained in Avisynth, I still can't get a handle on it. Apparently formal graphics training in other areas is required, as these tools are for developers rather than users. But I'll keep picking up pieces here and there. Convolution matrices are for math majors. So I'd have to go along with the road jagabo has taken. However.....

    frame 80, YUV + RGB, borders removed.
    Darkened with ColorYUV(off_y=-42):
    Click image for larger version

Name:	f80_NoBorders_Dark-42.png
Views:	309
Size:	35.1 KB
ID:	16325

    Filters can't use data that no longer exists.

    How did the frame size get to be 768x576 ?
    Quote Quote  
  17. How did the frame size get to be 768x576 ?
    the size was always 768x576.
    i just uploaded Processed Example By mistake.

    the reson why it happen in the Processed Example is in the second image in my first post on line 19 (in the "script editor window)
    Quote Quote  
  18. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Line 19 in the image in your first post is not a resize statement, it's a crop() statement. The resulting image would not be 768x576, it would be 706x566 -- which was the frame size of the first avi you posted. Was this video captured at 768x576?
    Last edited by sanlyn; 25th Mar 2014 at 11:33.
    Quote Quote  
  19. Was this video captured at 768x576?
    yes.

    Line 19 in the image in your first post is not a resize statement, it's a crop() statement. The resulting image would not be 768x576, it would be 706x566 -- which was the frame size of the first avi you posted. 768x576 is not standard PAL (which might not matter, depending on what your final output will be), and it is a 4:3 square-pixel image aspect ratio. When cropped, the image aspect ratio is square-pixel 1.24:1.
    i know that.. i just always delete the junk part
    Quote Quote  
  20. Originally Posted by gil900 View Post

    poisondeathray , I do not rule out the possibility of doing it any other software.
    i have "frame sarver" option in VirtualDubMod..
    but i need to know how it can be done on Sony Vegas.

    and i am looking for plugin for Sony Vegas that very similar to the ColorMil,,
    The point is that in VirtualDud/VirtualDubMod i can't set groups of filter by frame/time range..
    so that in some part of the video VirtualDud will use filter/s X and on other parts he will not use filter X and use other filter/s
    or i can?
    In vdub, you can use the curve editor to change or limit an effect over time, but it's not as easy to do or as useful as in other programs

    It's way too much information to describe in 1 post. There are many tutorials on youtube, and other sites, many books and resources you can look at . If you have a specific question , I can try to help or point you in the right direction

    Basically - In vegas pro (or most NLE's), you can do everything that you can in colormill and more. You can do secondary color correction and masks (much easier to do than in avisynth - you can preview the mask if you want and tweak it while seeing results in realtime) . So for example if you want to selective correct green, you put the eyedropper there and click on it. You can keyframe all changes for effects, this means changing value of parameters over time . You have scopes (waveform, RGB histogram, vectorscope) - so you can monitor and evaluate changes in realtime
    Quote Quote  
  21. Some of the reasoning behind my earlier filter sequence:

    1) The green problem only happens in areas where a very bright area transitions (left to right) to a darker area. The green discoloration appears in the darker area, slightly to the right of the transition.

    2) So we need to locate those bright to dark transitions. And we only need those transitions from very bright areas. First I eliminated colors from the mask since we don't need them:

    Code:
    ColorYUV(cont_u=-256, cont_v=-256)
    then eliminated areas darker than Y=200:

    Code:
    ColorYUV(off_y=-200)
    This leaves you with a dark grey image consisting of what were the brightest parts of the original image. The rest is black.

    We now want to locate only the bright to dark transitions. One way to do that is a horizontal "emboss". Basically, as you move left to right across the image you subtract the pixel at each location from the pixel immediately to it's left. If the current pixel is darker than the pixel to the left the result is a positive number. If the current pixel is equal to the pixel to the left you get a zero. Otherwise you get a negative number. But since Y values can only range from 0-255 all those negative numbers become zeros. What we are left with is a black image with brighter pixels marking the areas of light to dark transitions. Since we previously eliminated the darker parts of the image we only have those light to dark transitions from the brightest parts of the image.

    But those transitions are fairly sharp (narrow), and the green bleed is fairly wide. So we need to smear those sharp edges out with a horizontal blur. That's why I added the Resize(small width) and Resize(big width) -- a crude horizontal blur. Too crude to use in practice but sufficient for in this proof of concept.

    Code:
    BilinearResize(16,576)
    ConvertToRGB() # for general convolution 
    GeneralConvolution(0, "0 0 0 1 0 -1 0 0 0") # emboss, we only want light to dark transitions 
    ConvertToYUY2() # back to YUY2
    BilinearResize(768,576) # scale up to original size, intentionally blurry image
    The mask needs to be shifted to the right because the green discolorations are to the right of the transitions. The resize operations did this a bit (as a byproduct) but we need a little more:

    Code:
     Crop(0,0,-16,-0).AddBorders(16,0,0,0) # shift image to the right, may need tuning
    Now we have a mask that aligns pretty well with the green discolorations (at least on the back wall) but it's pretty dark. Let's adjust the brightness and contrast to get it into a workable range.

    Code:
     mask = ColorYUV(cont_y=200, gain_y=1200) # adjust contrast, brightness, needs tuning
    Now we need use the mask to replace the green bleed. If you look at what the green bleed does at the transition between the bright window and the darker wall you'll see that the chroma channels are deflected down (V shown, U similar):

    Click image for larger version

Name:	v.jpg
Views:	318
Size:	34.4 KB
ID:	16327

    So if the chroma channels were blended with inverted versions of themselves they would neutralize each other (resulting in grey). Inverted chroma:

    Code:
    inv = MergeChroma(src, Invert(src)) # inverted colors  Overlay(src, inv, 0, 0, mask)
    and finally blend the inverted chroma with the original image using the mask:

    Code:
    Overlay(src, inv, 0, 0, mask)
    The problem here is that any real colors in the image will get neutralized too. A better solution might be to use a flat image that's the opposite color of the green bleed.
    Quote Quote  
  22. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    A most inmvaluable lesson, even if it doesn't cover everything (but, then, it couldn't ).

    I don't even know why I just put 2 hours into looking up every masktools script I've collected, and studying the AfterEffects demos on masking and blending. But I suppose that's the only way to get thru this stuff. One big reservation I have is that the capture itself is to too bright to begin with; if a darker capture could salvage some of those destroyed bright values....(because apparently red and blue are being clipped "earlier" than green, which leaves bright greens but no other brights). That might prevent some of the green smear). Then I started playing with switching/blending color channels in YUV and RGB both -- not that I know that much about it. But the clipped colors stopped me every time.

    But if the original camera recording was overexposed to begin with, there's nothing bright to salvage.

    But your explanation is revealing, and thank you again. Another item in my jagabo tutorial collection.
    Last edited by sanlyn; 25th Mar 2014 at 11:34.
    Quote Quote  
  23. thanks very much!
    I'll take a look at it later ..

    poisondeathray said a very important point.
    he said that this problem can solved much more easily by advanced video editor like Sony Vegas.
    and there is a lots of advantages.

    so why use coding in avisynth after all if such problem can be solved more easily without any coding?
    Last edited by gil900; 18th Feb 2013 at 14:23.
    Quote Quote  
  24. It can be solved more easily on a case-by-case basis. You can mark, say, the green bar next to the window and tell Vegas to make it gray. But you can't just say "make all the green areas grey". Somebody's green shirt may turn gray. Trees may lose their color. Etc. Since this green bleeding appears to have an identifiable cause there is hope of undoing it with AviSynth filters or writing a custom filter. Once the filter sequence has been created it will work with all shots with the same problem.

    In short, if you have only a few short shots to fix it's probably easier to use Vegas. If you have lot of shots to fix it's probably easier to make an AviSynth script.

    And I don't have Vegas. I just thought the problem was interesting so I took a shot at it.
    Last edited by jagabo; 18th Feb 2013 at 16:16.
    Quote Quote  
  25. ok thank you very much !
    Last edited by gil900; 19th Feb 2013 at 04:44.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!