VideoHelp Forum

Try DVDFab and copy Ultra HD Blu-rays and DVDs! Or rip iTunes movies and music! Download free trial !
+ Reply to Thread
Page 63 of 63
FirstFirst ... 13 53 61 62 63
Results 1,861 to 1,867 of 1867
Thread
  1. Member Bernix's Avatar
    Join Date
    Apr 2016
    Location
    Europe
    Search Comp PM
    Hi, thank you.
    Just read email and maintenance of my internet provider start soon. Just to crop parameter. This first 0,5 there is original number 0,75. When this is there auto crop feature doesn't work for content close to 4:3 ratio some are even more bit like 4:3,something. Channel i am watching is in full HD just old things so most are 4:3 or as i said more squarish and close to it with black borders on sides. If i don't lower this value, auto crop feature made that all section measure but result is all 0. So glad it worked for me when i lower this. Yes probably too low, but it doesn't matter really for me. Here comes the picture from crop misc tab. The first number. It is from advanced crop tab.

    Image
    [Attachment 54844 - Click to enlarge]

    Otherwise it didn't work.
    Also got idea not sure if possible to implement. If this scan notice there is full frame image it stop analyze. But yes, it is no needed, fast enough.

    Thank you for your answer very much. Yes i know thread is bit difficult, but my point is more lower it, rather than use higher value, mostly encoding in parallel which utilize CPU good enough. Just in some special case. Also i know process is default below normal actually in idle priority.

    EDIT: Not on so old, but to make it sure downloaded latest
    EDIT2: it doesn't say audio need to be adjusted, it told me HEv2 AAC need stereo as source and simply let me know this. Not any adjustment mentioned. No any other action. Aborted therefore. Just source was stereo.


    That maintenance is any minute, not sure all will be send. See you and good night!




    Thank you and see you!
    Bernix
    Last edited by Bernix; 9th Sep 2020 at 16:55. Reason: Edit and Edit 2
    Quote Quote  
  2. Member Bernix's Avatar
    Join Date
    Apr 2016
    Location
    Europe
    Search Comp PM
    Hi,
    here i made video and put it on streamable. First analyze pass is with default hybrid settings, which do not allow content close to or exact 4:3 from 16:9 screen working. And what must be modified to it work. Sorry for length of video. And yes i could set less frames to analyze, so... But in first case it know there will not be any crop since first analyzed frame. <- In fact in this case it do not know, but in some cases it knows at first frame.

    That settings of first pass is how Hybrid comes default, not sure enough time spot that 0,75 in video.
    I got one which is exact cut from 1920x1080 to 1440x1080. But with default it cant work either.



    https://streamable.com/zi1qnb


    Don't know if tag video will work, but get link for sure easy.


    See you!
    Bernix
    Last edited by Bernix; 10th Sep 2020 at 10:10.
    Quote Quote  
  3. Ah, okay now I get it. 1920*0.75 = 1440, so the width can at maximum be reduced by 480 pixels but your source needs 530.
    So lowering the default to 0.7 would allow 576 (= 1920 - 1920*0.70) which should do the job.
    Will adjust the default value to 0.7 for the next relaese.
    Until then you can simply set the value to 0.7 and save it in your defaults.

    If you can reproduce the HE-AACv2 issue with a specific source, please create a debug output and share that with me, so I can check what is causing this to fail.

    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  4. Member Bernix's Avatar
    Join Date
    Apr 2016
    Location
    Europe
    Search Comp PM
    Hi Selur,
    i got it saved for long time on 0,5. Because old TV things. This is just for demonstration purpose how default work. Also that 1920 x 0,75 = 1440 it doesn't work. 1440 is still excluded. Lowering this settings i can do exact 1440x1080, with 0,75 it make just one side somehow. So 1920-240 on left. Not sure how it works. It is actually not so important. Just that cropping 16:9 to 4:3, i think is frequent and some can have problems realize why autocrop doesn't work.
    Lowering it default to 0,7 i think is good idea.



    Thank you and see you!
    Bernix
    Quote Quote  
  5. Member Bernix's Avatar
    Join Date
    Apr 2016
    Location
    Europe
    Search Comp PM
    Hi Selur,
    another stupid question from me. There is frame interpolation in vapoursynth. With presets. Fastest faster fast and medium. Seems to me like medium isn't best possible. Are there some slower or better preset? Yes medium is good enough, just for something to archive if any better presets.
    Speaking about Interframe/SVP.


    Thank you and see you.
    Bernix
    Quote Quote  
  6. No havsfunc.InterFrame only has 'medium', 'fast', 'faster', 'fastest'
    Code:
    def InterFrame(Input, Preset='Medium', Tuning='Film', NewNum=None, NewDen=1, GPU=False, InputType='2D', OverrideAlgo=None, OverrideArea=None, FrameDouble=False):
        if not isinstance(Input, vs.VideoNode):
            raise vs.Error('InterFrame: This is not a clip')
    
        # Validate inputs
        Preset = Preset.lower()
        Tuning = Tuning.lower()
        InputType = InputType.upper()
    
        if Preset not in ['medium', 'fast', 'faster', 'fastest']:
            raise vs.Error(f"InterFrame: '{Preset}' is not a valid preset")
    
        if Tuning not in ['film', 'smooth', 'animation', 'weak']:
            raise vs.Error(f"InterFrame: '{Tuning}' is not a valid tuning")
    
        if InputType not in ['2D', 'SBS', 'OU', 'HSBS', 'HOU']:
            raise vs.Error(f"InterFrame: '{InputType}' is not a valid InputType")
    
        def InterFrameProcess(clip):
            # Create SuperString
            if Preset in ['fast', 'faster', 'fastest']:
                SuperString = '{pel:1,'
            else:
                SuperString = '{'
    
            SuperString += 'gpu:1}' if GPU else 'gpu:0}'
    
            # Create VectorsString
            if Tuning == 'animation' or Preset == 'fastest':
                VectorsString = '{block:{w:32,'
            elif Preset in ['fast', 'faster'] or not GPU:
                VectorsString = '{block:{w:16,'
            else:
                VectorsString = '{block:{w:8,'
    
            if Tuning == 'animation' or Preset == 'fastest':
                VectorsString += 'overlap:0'
            elif Preset == 'faster' and GPU:
                VectorsString += 'overlap:1'
            else:
                VectorsString += 'overlap:2'
    
            if Tuning == 'animation':
                VectorsString += '},main:{search:{coarse:{type:2,'
            elif Preset == 'faster':
                VectorsString += '},main:{search:{coarse:{'
            else:
                VectorsString += '},main:{search:{distance:0,coarse:{'
    
            if Tuning == 'animation':
                VectorsString += 'distance:-6,satd:false},distance:0,'
            elif Tuning == 'weak':
                VectorsString += 'distance:-1,trymany:true,'
            else:
                VectorsString += 'distance:-10,'
    
            if Tuning == 'animation' or Preset in ['faster', 'fastest']:
                VectorsString += 'bad:{sad:2000}}}}}'
            elif Tuning == 'weak':
                VectorsString += 'bad:{sad:2000}}}},refine:[{thsad:250,search:{distance:-1,satd:true}}]}'
            else:
                VectorsString += 'bad:{sad:2000}}}},refine:[{thsad:250}]}'
    
            # Create SmoothString
            if NewNum is not None:
                SmoothString = '{rate:{num:' + repr(NewNum) + ',den:' + repr(NewDen) + ',abs:true},'
            elif clip.fps_num / clip.fps_den in [15, 25, 30] or FrameDouble:
                SmoothString = '{rate:{num:2,den:1,abs:false},'
            else:
                SmoothString = '{rate:{num:60000,den:1001,abs:true},'
    
            if OverrideAlgo is not None:
                SmoothString += 'algo:' + repr(OverrideAlgo) + ',mask:{cover:80,'
            elif Tuning == 'animation':
                SmoothString += 'algo:2,mask:{'
            elif Tuning == 'smooth':
                SmoothString += 'algo:23,mask:{'
            else:
                SmoothString += 'algo:13,mask:{cover:80,'
    
            if OverrideArea is not None:
                SmoothString += f'area:{OverrideArea}'
            elif Tuning == 'smooth':
                SmoothString += 'area:150'
            else:
                SmoothString += 'area:0'
    
            if Tuning == 'weak':
                SmoothString += ',area_sharp:1.2},scene:{blend:true,mode:0,limits:{blocks:50}}}'
            else:
                SmoothString += ',area_sharp:1.2},scene:{blend:true,mode:0}}'
    
            # Make interpolation vector clip
            Super = clip.svp1.Super(SuperString)
            Vectors = core.svp1.Analyse(Super['clip'], Super['data'], clip, VectorsString)
    
            # Put it together
            return core.svp2.SmoothFps(clip, Super['clip'], Super['data'], Vectors['clip'], Vectors['data'], SmoothString)
    
        # Get either 1 or 2 clips depending on InputType
        if InputType == 'SBS':
            FirstEye = InterFrameProcess(Input.std.Crop(right=Input.width // 2))
            SecondEye = InterFrameProcess(Input.std.Crop(left=Input.width // 2))
            return core.std.StackHorizontal([FirstEye, SecondEye])
        elif InputType == 'OU':
            FirstEye = InterFrameProcess(Input.std.Crop(bottom=Input.height // 2))
            SecondEye = InterFrameProcess(Input.std.Crop(top=Input.height // 2))
            return core.std.StackVertical([FirstEye, SecondEye])
        elif InputType == 'HSBS':
            FirstEye = InterFrameProcess(Input.std.Crop(right=Input.width // 2).resize.Spline36(Input.width, Input.height))
            SecondEye = InterFrameProcess(Input.std.Crop(left=Input.width // 2).resize.Spline36(Input.width, Input.height))
            return core.std.StackHorizontal([FirstEye.resize.Spline36(Input.width // 2, Input.height), SecondEye.resize.Spline36(Input.width // 2, Input.height)])
        elif InputType == 'HOU':
            FirstEye = InterFrameProcess(Input.std.Crop(bottom=Input.height // 2).resize.Spline36(Input.width, Input.height))
            SecondEye = InterFrameProcess(Input.std.Crop(top=Input.height // 2).resize.Spline36(Input.width, Input.height))
            return core.std.StackVertical([FirstEye.resize.Spline36(Input.width, Input.height // 2), SecondEye.resize.Spline36(Input.width, Input.height // 2)])
        else:
            return InterFrameProcess(Input)
    source: https://github.com/HomeOfVapourSynthEvolution/havsfunc/blob/master/havsfunc.py

    SVP does allow additional parameters: https://www.svp-team.com/wiki/Manual:SVPflow which might give better results than the presets.

    For example:
    Interframe only uses pel=2 for medium,
    pel: 2,

    The accuracy of the motion estimation. Value can only be 1, 2 or 4. 1 means a precision to the pixel, 2 means a precision to half a pixel, 4 - to quarter pixel (not recommended to use).
    and the SVP devs do not recommend using pel=4, but without testing no clue whether 4 could help. (I suspect it isn't recommend since it probably will not help much, but require a lot more graphic card memory)

    -> So if your find 'better' settings (that in general improve interpolation), I could add other presets using those settings.

    Cu Selur

    Ps.: same is true for Interframe when using Avisynth.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  7. Member Bernix's Avatar
    Join Date
    Apr 2016
    Location
    Europe
    Search Comp PM
    Hi Selur, thank you. Just seeing medium imply me there are slower. So there are but not recommended. Thank you for very detailed answer. No i will not find any, i am not able to do I am using cpu for it btw I think probably problem could be some fragments or hickups when interpolating to 1/4 of pixel probably. Or that memory as you are saying. Thank you and see you! Bernix
    Quote Quote  



Similar Threads