VideoHelp Forum




+ Reply to Thread
Results 1 to 14 of 14
  1. An example will explain what the title of the post means:

    As the video plays first comes this frame:
    Click image for larger version

Name:	Darkwing.Duck.E34.Kikis.fliegendes.Geschichtsbuch.avi_snapshot_00.01_[2013.06.18_19.29.34].jpg
Views:	1142
Size:	49.6 KB
ID:	18414

    As you can see in this first frame the colour of the next frame is shown, while the characters appear colourless!!!
    After this first frame comes this second frame:
    Click image for larger version

Name:	Darkwing.Duck.E34.Kikis.fliegendes.Geschichtsbuch.avi_snapshot_00.02_[2013.06.18_19.29.57].jpg
Views:	1688
Size:	42.9 KB
ID:	18415

    As you can see the colour of the character here appears to be synchronized, but in fact it's still ahead of the picture (because the movement of this part of the video is not very fast. In other quick movements the colour remains shown ahead of the picture untill the quick movement slows down)

    Any solution to transfer the colour back so that it's synchronised with the picture?

    P.S.: I'm using virtualdub and only a little avisynth. Please give me thorough instructions if this is only solved by avisynth.
    Also, tell me if you need part of the video to examine
    Quote Quote  
  2. Someone probably mishandled interlaced YV12. I'm not aware of any fix in VirtualDub. A sample of your original video will determine whether or not there's any hope for an AviSynth fix.

    Typically, animation has many duplicate frames so there's some possibility of using the chroma from the prior frame. But it may be hard to do this in an automated fashion.
    Quote Quote  
  3. Ok here is the sample of the video:
    Image Attached Files
    Quote Quote  
  4. Originally Posted by jagabo View Post
    But it may be hard to do this in an automated fashion.
    Some of the sample has the problem and some doesn't. I don't know of any way, either, to do it automatically. All I can do to fix it is to use MergeChroma on selected frame ranges together with ReplaceFramesSimple. So, unless you're willing to go through the entire thing frame-by-frame fixing what needs fixing, I don't know of any alternatives. Maybe jagabo or someone else does.
    Quote Quote  
  5. Yes, I couldn't see any obvious pattern to the frames with the problem either. You can use MergeChroma(Trim(1,0), last) to fix the frames with the problem but it creates the problem on frames that don't have it. I wonder if there's a way one could compare the chroma channels to the luma channel and see how well the edges line up. Then use that to decide whether to keep the original frame or the fixed frame.

    Y, U, and V stacked horizontally and embossed, which is a better match:

    Click image for larger version

Name:	p1.jpg
Views:	317
Size:	22.4 KB
ID:	18420

    Click image for larger version

Name:	p2.jpg
Views:	315
Size:	20.5 KB
ID:	18421
    Last edited by jagabo; 18th Jun 2013 at 16:24.
    Quote Quote  
  6. Thanks for the useful info guys, you really know your ways around videos.
    The first question that pops in mind is whether or not time-shifting the chroma channel solves the problem.
    For example if the channels are like this:

    frame 1: Y1 U2 V2
    frame 2: Y2 U3 V3
    frame 3: Y3 U4 V4

    would it be possible to shift the U and V back like this:

    frame 1: Y1 U1 V1
    frame 2: Y2 U2 V2
    frame 3: Y3 U3 V3
    Quote Quote  
  7. Originally Posted by provato View Post
    The first question that pops in mind is whether or not time-shifting the chroma channel solves the problem.
    Yes, it does. The problem is that some frames don't have time shifted chroma. So if you shift the whole video you fix the bad frames but you create bad frames out of the good frames. Try this script:

    Code:
    AviSource("Darkwing.Duck.intro.avi") 
    StackHorizontal(Trim(1,0), MergeChroma(Trim(1,0),last))
    That shows the original video on the left, the chroma shifted video on the right. You'll see that sometimes the original frame is correct, sometimes the shifted frame. So you need some way of deciding which frames need fixing and which don't. That's the hard part. As manono pointed out, you could go through the video manually, decide which frames need fixing, then use ReplaceFramesSimple() to replace only the bad frames with the shifted frames.

    Here's a script the fixes the first few sections:

    Code:
    src = AviSource("Darkwing.Duck.intro.avi")  # get source video
    
    shifted = Trim(src,1,0) # make another video, shifted by one frame
    shifted = MergeChroma(shifted,src) # apply the chroma of the source video to luma of the shifted video
    src = Trim(src,1,0) # sync src and shifted
    
    ReplaceFramesSimple(src, shifted, mappings="[0 80] [86 87]") # replace frames 0-80 and 86-87 of the original video with the same frames of the chroma shifted video
    # use more calls to ReplaceFramesSimple() to fix more frames...
    Last edited by jagabo; 18th Jun 2013 at 17:14.
    Quote Quote  
  8. I loaded the script on virtualdub and it was impressive! Whenever the right video was chroma shifted, the left was fixed and vice versa!!! There was always a good frame in one (or both) of these

    so, if I get this right, there is no way to detect the chroma shifted frames (so that they can be replaced)
    Quote Quote  
  9. Could anyone use this script and tell me if it works (because I don't know how to load it on virtualdub...):

    http://forum.doom9.org/showthread.php?t=166834
    Quote Quote  
  10. It doesn't do what you want. It's designed to fix chroma that has been shifted a few pixels right/left/up/down within the current frame, not when you have the chroma for the current frame a frame earlier or later.
    Quote Quote  
  11. Originally Posted by provato View Post
    so, if I get this right, there is no way to detect the chroma shifted frames (so that they can be replaced)
    I wouldn't say "no way". But I don't see any obvious, simple way. The embossed separated channels hints at a way but there's still a lot of details work out.
    Quote Quote  
  12. Thanks for the help and the info jagabo and manono.
    I finally decided to toss this video source and I found another for the TV series which doesn't have the problem.
    It would be too much time consuming to go through every frame and check.
    Cya around!
    Quote Quote  
  13. Banned
    Join Date
    Oct 2004
    Location
    Freedonia
    Search Comp PM
    Originally Posted by provato View Post
    It would be too much time consuming to go through every frame and check.
    Cya around!
    You're my hero for being smart enough to figure that out. I'm serious. We normally get a lot of people who place no value at all on their spare time and would spend 6 months on this just to get maybe 2-3 hours of video fixed when if they would spend, say, $10 to just by the DVDs at Amazon they wouldn't have to fix anything. At least you looked for better source.
    Quote Quote  
  14. Originally Posted by provato View Post
    I finally decided to toss this video source and I found another for the TV series which doesn't have the problem.
    It would be too much time consuming to go through every frame and check.
    I know you found another source so you don't really need this. But the problem struck me as interesting so I did a little work on it. My automated selection process using the idea put forth in post #5 gave the result in the attached video (original left, processed right). It's hard to see the difference with realtime playback. Open the video in an editor and step through a frame at a time. Most of the problem frames were fixed by the script, a few were not, and a few were made worse. If anyone is interested I'll upload the script.
    Image Attached Files
    Last edited by jagabo; 28th Jun 2013 at 18:09.
    Quote Quote  



Similar Threads

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