VideoHelp Forum




+ Reply to Thread
Results 1 to 12 of 12
  1. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    Just burnt my first SVCD from a 16:9 interlaced DV-AVI source. I used a simple .avs script and standard SVCD-NTSC template in TMPGEnc 2.5 Plus. The latter was set to produce interlaced output. I set average bitrate to 1700+ kbts/sec. Here is the .avs script:

    Loadplugin("C:\Program Files\AviSynth 2.5\plugins\msharpen110b2\MSharpen.dll")
    DirectShowSource("D:\MiniDV\Panyuzoo-trimmed.avi")
    bilinearresize(480,360)
    MSharpen()
    AddBorders(0,60,0,60).

    When I played this back on my TV, the interlacing lines were very visible during fast motion and even in still scenes, edges where jagged.

    Any idea as to why interlacing hadn't disappeared?

    Appreciate your help.
    Quote Quote  
  2. Член BJ_M's Avatar
    Join Date
    Jul 2002
    Location
    Canada
    Search Comp PM
    you may have encoded the wrong field order
    "Each problem that I solved became a rule which served afterwards to solve other problems." - Rene Descartes (1596-1650)
    Quote Quote  
  3. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    I chose interlaced BFF for source. I'm not 100%, but that's what I thought most miniDV camcorders produce. I have Panasonic GS500. Please take a look at my TMGEnc settings. Are they wrong?



    Quote Quote  
  4. Member gadgetguy's Avatar
    Join Date
    Feb 2002
    Location
    West Mitten, USA
    Search Comp PM
    I think it's because of the bilinearresize/addborders combination. You are resizing frames that consist of fields from two different points in time and then adding borders on top and bottom and then telling the encoder to encode with 480 scan lines which no longer line up with the original scan lines that you shrunk. You need to separate the fields, then resize and add borders, then weave them back together and encode interlaced.
    "Shut up Wesley!" -- Captain Jean-Luc Picard
    Buy My Books
    Quote Quote  
  5. Replace BilinearResize() with:

    LeakKernelBob(Order=0)
    LanczosResize(480, 360) #fewer moire artifacts and sharper than bilinear
    # put MSharpen() here if you need it, not after Weave()
    SeparateFields()
    SelectEvery(4,0,3)
    Weave()
    Quote Quote  
  6. Member edDV's Avatar
    Join Date
    Mar 2004
    Location
    Northern California, USA
    Search Comp PM
    Goes back to the old saying: "If it isn't broke, don't fix it".

    The original file was fine before all the special modifications. Vertical resizing of interlace material causes the greatest problems. Handle with care. Conversion to 352x576 (PAL) or 352x480 (NTSC) is usually harmless.
    Quote Quote  
  7. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    Thanks everyone for you help. It makes perfect sense that fields would get messed up with a resize.

    I have LeakKernelDeint package, but have never used ...Bob(). How does it work?
    And also, SelectEvery(4,0,3), I believe means: select fields 0,3,4,7,8,11.... But what is the purpose and how do you arrive at the parameters?

    Thanks again.
    Quote Quote  
  8. LeakKernelBob(order=0 for BFF, order=1 for TFF) performs a smart BOB deinterlace, creating two progressive frames from one interlaced frame. For still parts of the picture it copies both fields to each frame. For parts where there's motion it does some smart interpolation of the fields. You now have two progressive frames for each interlaced frame in the original.

    You resize at this stage while you have progressive frames.

    SeparateFields() splits each of those two progressive frames into two fields. You now have four fields.

    SelectEvery(4, 0, 3) says for every group of 4 fields (or frames if you had frames) select fields 0 and 3 (throw out fields 1 and 2). field 0 is the top field from the first progressive frame, field 3 is the bottom field from the second progressive frame (or vice versa depending on the current field order).

    Weave() weaves the two remaining fields back into an interlaced frame.

    Code:
    Ii -> P1 P2 (resize here) -> P1t P1b P2t P2b -> P1t P2b -> Oi
    
    Ii = input frame, interlaced
    P1 = Progressive frame from one field of Ii
    P2 = Progressive frame from other field of Ii
    P1t = top field from P1
    P1b = bottom field from P1
    P2t = top field from P2
    P2b = bottom field from P2
    O = interlaced output frame
    Quote Quote  
  9. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    jagabo, thank you for that explanation. I'll try this tomorrow and report back here.
    Quote Quote  
  10. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    Originally Posted by jagabo
    Replace BilinearResize() with:

    LeakKernelBob(Order=0)
    LanczosResize(480, 360) #fewer moire artifacts and sharper than bilinear
    # put MSharpen() here if you need it, not after Weave()
    SeparateFields()
    SelectEvery(4,0,3)
    Weave()
    Worked like a charm. Interlace lines are gone! The overall quality leaves much to be desired though, but I guess that's a function of the low bitrate.
    Quote Quote  
  11. SVCD is rather low quality. But 60 lines of black at the top and bottom should help (black borders take up hardly any bits).

    I don't remember -- does SVCD support anamorphic 16:9? If that's the case you can simply resize to 480x480 and set the 16:9 flag.
    Quote Quote  
  12. Member
    Join Date
    Feb 2007
    Location
    China
    Search Comp PM
    I don't think it's part of SVCD standard, but I've heard some players can support it. Mine doesn't.
    Quote Quote  



Similar Threads

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