VideoHelp Forum




+ Reply to Thread
Results 1 to 16 of 16
  1. Hello all,

    I've just started working with some basic Panasonic MII capturing and note when I deinterlace the following with QTGMC via hybrid with some cropping and scaling, it introduces what appears to be a vertical one-line jitter on every other frame that I can't really see in the pre-de-interlaced footage - please see both attachments.

    Any ideas how to get rid of that jitter or what caused it in the first place?

    As far as the capture chain, it's an AU-65P machine (with internal TBC that can't be disabled) and output via component (at MII levels which is not standard component) which then gets transcoded to betacam digital component levels via a DPS470 is set to minimum delay transcoder mode (and does not act as a TBC).

    Since the still-interlaced footage doesn't appear to have that jitter, I don't think the chain is necessarily the issue?

    Thanks in advance!
    Image Attached Files
    Quote Quote  
  2. The fields of the source are pair-wise swapped.
    Fix it with
    Code:
    swapfields()
    QTGMC() #for deinterlacing only
    or
    Code:
    SeparateFields().ComplementParity().Weave()
    QTGMC() #for deinterlacing only
    Last edited by Sharc; 8th Jul 2026 at 10:47.
    Quote Quote  
  3. The video is all still shots so you can skip the QTGMC() and just use swapfields(). Of course, other parts of it may be truly interlaced.
    Quote Quote  
  4. Member VWestlife's Avatar
    Join Date
    Mar 2026
    Location
    New Jersey, USA
    Search PM
    On truly still shots, just blend the fields together. QTGMC's party trick is motion compensation (hence the "MC" in its name), and there is nothing to be gained when there is no motion to compensate.
    Quote Quote  
  5. Ah, interesting. I always thought with field order being reversed that the motion would kind of judder back and forth in the wrong order during lateral movements but here it seems it is more of an "up and down" mismatch.

    Must be MII is one of those few formats that QTGMC doesn't autodetect quite right, or perhaps it assumes perhaps because the clip starts with stills. There is motion in other parts of this video, so I'll still need to use deinterlacing.

    I'll give that a go!

    If using hybrid and this is my full chain, where to I put the "swapfields()
    QTGMC() #for deinterlacing only" in the chain?

    x264 --preset veryfast --bitrate 15000 --profile high --ref 3 --direct auto --b-adapt 0 --sync-lookahead 18 --ratetol 2.00 --qcomp 0.50 --rc-lookahead 40 --qpmax 51 --partitions i4x4,p8x8,b8x8 --no-fast-pskip --subme 5 --aq-mode 0 --sar 1:1 --qpfile GENERATED_QP_FILE --non-deterministic --range tv --colormatrix bt470bg --demuxer raw --input-res 1440x1080 --input-csp i420 --input-range tv --input-depth 8 --fps 60000/1001 --output-depth 8 --output "/private/var/folders/n5/0j9jvgyd5z5cd2px3_7z65j00000gn/T/Deinterlaced.264" -

    ....Or would overwriting input field order to BFF/TFF (try both?) work instead?
    Last edited by aramkolt; 8th Jul 2026 at 13:37.
    Quote Quote  
  6. Originally Posted by aramkolt View Post
    Ah, interesting. I always thought with field order being reversed that the motion would kind of judder back and forth in the wrong order during lateral movements but here it seems it is more of an "up and down" mismatch.
    TFF/BFF relates to the TEMPORAL fields sequence, whereas your field swapped case is a spatial field issue: line 0 is swapped with line 1, line 2 is swapped with line 3 etc., i.e. swapping even lines with the odd lines, thus effectively swapping the 2 fields of an interlaced frame. Think of even and odd fields instead of top and bottom fields.

    Must be MII is one of those few formats that QTGMC doesn't autodetect quite right,
    It just can't. Similar as it can't detect TFF or BFF automatically.

    There is motion in other parts of this video, so I'll still need to use deinterlacing.
    That's exactly what I assumed and the reason why I added QTGMC() at the end of the script in post#2.

    If using hybrid and this is my full chain, where to I put the "swapfields()...
    SwapFields() is an avisynth filter of its own, independent of QTGMC. Put it early in the script, latest just before QTGMC(). See my post #2.

    ....Or would overwriting input field order to BFF/TFF (try both?) work instead?
    No, as said above. It is a spatial rather than a temporal (field parity) issue. You have to fix it accordingly.
    Last edited by Sharc; 9th Jul 2026 at 01:29.
    Quote Quote  
  7. Thanks for the clarification! I don't seem to be able to do a custom edit of the script at least with the last (now unsupported 2022.02.20.1) Mac version of Hybrid and I don't see it as one of the listed filters in the dropdown menus under filtering - Is there any other way to achieve a field swap first with something like FFMPEG or via the command line perhaps?
    Quote Quote  
  8. Originally Posted by aramkolt View Post
    Thanks for the clarification! I don't seem to be able to do a custom edit of the script at least with the last (now unsupported 2022.02.20.1) Mac version of Hybrid and I don't see it as one of the listed filters in the dropdown menus under filtering - Is there any other way to achieve a field swap first with something like FFMPEG or via the command line perhaps?
    What comes to my mind is a workaround with an upwards field shift of the even field, something like
    Code:
    separatefields()
    e=selecteven()
    o=selectodd()
    e=e.crop(0,2,0,0).addborders(0,1,0,1)
    interleave(o,e)
    weave()
    Or maybe you can just set/change the field position in Hybrid. I didn't check.
    Last edited by Sharc; 9th Jul 2026 at 01:27.
    Quote Quote  
  9. An attempt to explain the 4 cases. Assume A an B represent 2 successive lines of an weaved interlaced frame, means line n and line n+1

    Code:
    Case 1 = TFF:
    A A A A ....
     B B B B .....
    
    Case 2 = BFF:
     A A A A ....
    B B B B ..........
    
    Case 3 = Case 1 swapped (wrong weaved)
     B B B B .....
    A A A A .......
    
    Case 4 = Case 2 swapped (wrong weaved)
    B B B B .....
     A A A A ......
    Quote Quote  
  10. Field parity is a temporal issue -- which of the two fields is supposed to be displayed first when transmitted interlaced. SwapFields(), the filter that fixes the OP's video, is a spacial issue -- the placement the scanlines within the interlaced frame.

    Sharc's description in post #9 correctly describes the latter problem. His script in post #8 is an alternative way to fix the problem.
    Quote Quote  
  11. Swapfields works pretty easily within Staxrip, but I wasn't able to find a way to actually do it on Mac even with AI suggesting scripts to accomplish the same things via command line and avisynth+ or vapoursynth basically just arriving at various errors when tried. I didn't see a filter within Hybrid that would do it either, but it's definitely nice to have an option that does work.

    I'll have to try some other component to SDI converters that can adjust chroma levels to compensate for MII levels and see if those also produce the swapped fields or not. The other people I've spoken to that have worked on MII haven't had this problem, so could be just something odd about this specific tape or something in my settings on the DPS470. The DPS470 is definitely meant to work with MII machines (it has specific chroma level settings for it), but could be something else setting-wise causing it that I have incorrect as well.

    Thanks everyone!
    Quote Quote  
  12. @aramkolt: Also take a look here for further explanations. Maybe it helps to tackle the origin of your issue.
    https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/parity.html
    Quote Quote  
  13. Originally Posted by aramkolt View Post
    .... Is there any other way to achieve a field swap first with something like FFMPEG or via the command line perhaps?
    in ffmpeg try something like this
    Code:
    ffmpeg  -i "SC1ATK565interlaced.mov" -vf il=luma_swap=true:chroma_swap=true -crf 18 fieldswapped.mp4
    Right now I am not sure whether the chroma needs swapping as well for your case (probably yes). If not just set it to false.

    https://ffmpeg.org/ffmpeg-filters.html#il
    Last edited by Sharc; 10th Jul 2026 at 06:42. Reason: Link added
    Quote Quote  
  14. Given that there is no motion, wouldn't simple using QTGMC().SelectEven() work fine?
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  15. Originally Posted by Selur View Post
    Given that there is no motion, wouldn't simple using QTGMC().SelectEven() work fine?
    Yes. But the OP wrote that his full video is actually a mix of the static pictures (his short clip) with true interlaced video which he eventually wants to double rate deinterlace.
    Quote Quote  
  16. Ah, sorry, I missed that.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  



Similar Threads

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