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!
+ Reply to Thread
Results 1 to 16 of 16
-
-
The fields of the source are pair-wise swapped.
Fix it with
orCode:swapfields() QTGMC() #for deinterlacing only
Code:SeparateFields().ComplementParity().Weave() QTGMC() #for deinterlacing only
Last edited by Sharc; 8th Jul 2026 at 10:47.
-
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.
-
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.
-
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.
-
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.
It just can't. Similar as it can't detect TFF or BFF automatically.Must be MII is one of those few formats that QTGMC doesn't autodetect quite right,
That's exactly what I assumed and the reason why I added QTGMC() at the end of the script in post#2.There is motion in other parts of this video, so I'll still need to use deinterlacing.
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.If using hybrid and this is my full chain, where to I put the "swapfields()...
No, as said above. It is a spatial rather than a temporal (field parity) issue. You have to fix it accordingly.....Or would overwriting input field order to BFF/TFF (try both?) work instead?Last edited by Sharc; 9th Jul 2026 at 01:29.
-
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
Or maybe you can just set/change the field position in Hybrid. I didn't check.Code:separatefields() e=selecteven() o=selectodd() e=e.crop(0,2,0,0).addborders(0,1,0,1) interleave(o,e) weave()
Last edited by Sharc; 9th Jul 2026 at 01:27.
-
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 ......
-
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. -
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! -
@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 -
in ffmpeg try something like this
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.Code:ffmpeg -i "SC1ATK565interlaced.mov" -vf il=luma_swap=true:chroma_swap=true -crf 18 fieldswapped.mp4
https://ffmpeg.org/ffmpeg-filters.html#ilLast edited by Sharc; 10th Jul 2026 at 06:42. Reason: Link added
-
Given that there is no motion, wouldn't simple using QTGMC().SelectEven() work fine?
users currently on my ignore list: deadrats, Stears555, marcorocchini -
-
Ah, sorry, I missed that.
users currently on my ignore list: deadrats, Stears555, marcorocchini
Similar Threads
-
QTGMC deinterlace?
By marcorocchini in forum Newbie / General discussionsReplies: 5Last Post: 1st Apr 2026, 08:58 -
Issue Using Hybrid to Deinterlace (QTGMC/Bob)
By low-fat-al in forum RestorationReplies: 1Last Post: 9th Aug 2025, 09:09 -
Issue Using Hybrid to Deinterlace (QTGMC/Bob)
By low-fat-al in forum Video ConversionReplies: 12Last Post: 6th Aug 2025, 12:20 -
QTGMC (deinterlace problem)
By rgr in forum Video ConversionReplies: 8Last Post: 22nd Nov 2023, 09:17 -
Constant Vertical Jitter
By BillyJeanB in forum Capturing and VCRReplies: 2Last Post: 10th Feb 2022, 13:10


Quote
