VideoHelp Forum
+ Reply to Thread
Results 1 to 8 of 8
Thread
  1. I'm trying to compare two pictures from compressed videos with avc,hevc,vp9,av1

    how I can make sure all picture is keyframe? because I can't, maybe one b frame and the other I frame right? Is this something to do with references frames, open GOP, Max intra period in frames, Minimum GOP size, scene cut, golden frame, Periodic Intra Refresh?
    Quote Quote  
  2. Force closed strict GOP.
    Quote Quote  
  3. And comparing only I frames won't tell you much. Some encoders use higher quality on I frames (relative to P and B frames), some lower. And it may vary depending on the video, bitrate restrictions, etc.
    Quote Quote  
  4. Originally Posted by pandy View Post
    Force closed strict GOP.
    okay thank you for the advice, let us say I want to encode video with only 200 frames, is this command the right way to get I frame on 0,50,100,150,200 # of frame


    for x264 :

    --keyint 50 , --min-keyint 50 --no-scenecut



    frame-type options:

    -I, --keyint <integer or "infinite"> Maximum GOP size [250]
    -i, --min-keyint <integer> Minimum GOP size [auto]
    --no-scenecut Disable adaptive I-frame decision
    --intra-refresh Use Periodic Intra Refresh instead of IDR frames
    -b, --bframes <integer> Number of B-frames between I and P [3]
    --b-adapt <integer> Adaptive B-frame decision method [1]
    Higher values may lower threading efficiency.
    - 0: Disabled
    - 1: Fast
    - 2: Optimal (slow with high --bframes)
    --b-bias <integer> Influences how often B-frames are used [0]
    --b-pyramid <string> Keep some B-frames as references [normal]
    - none: Disabled
    - strict: Strictly hierarchical pyramid
    - normal: Non-strict (not Blu-ray compatible)
    --open-gop Use recovery points to close GOPs
    Only available with b-frames
    for x265 :
    --open-gop 0 --keyint 50 , --min-keyint 50 --no-scenecut

    --[no-]open-gop Enable open-GOP, allows I slices to be non-IDR. Default enabled
    -I/--keyint <integer> Max IDR period in frames. -1 for infinite-gop. Default 250
    -i/--min-keyint <integer> Scenecuts closer together than this are coded as I, not IDR. Default: auto
    --gop-lookahead <integer> Extends gop boundary if a scenecut is found within this from keyint boundary. Default 0
    --no-scenecut Disable adaptive I-frame decision
    --scenecut <integer> How aggressively to insert extra I-frames. Default 40
    --scenecut-bias <0..100.0> Bias for scenecut detection. Default 5.00
    --radl <integer> Number of RADL pictures allowed in front of IDR. Default 0
    --intra-refresh Use Periodic Intra Refresh instead of IDR frames
    vp9 :
    --kf-min-dist=50 --kf-max-dist=50 --disable-kf
    Keyframe Placement Options:
    --kf-min-dist=<arg> Minimum keyframe interval (frames)
    --kf-max-dist=<arg> Maximum keyframe interval (frames)
    --disable-kf Disable keyframe placement
    av1 :

    --kf-min-dist=50 --kf-max-dist=50 --disable-kf
    Keyframe Placement Options:
    --enable-fwd-kf=<arg> Enable forward reference keyframes
    --kf-min-dist=<arg> Minimum keyframe interval (frames)
    --kf-max-dist=<arg> Maximum keyframe interval (frames)
    --disable-kf Disable keyframe placement
    Quote Quote  
  5. Originally Posted by jagabo View Post
    And comparing only I frames won't tell you much. Some encoders use higher quality on I frames (relative to P and B frames), some lower. And it may vary depending on the video, bitrate restrictions, etc.
    so what's the right way to comparing two frames?
    Quote Quote  
  6. Originally Posted by rockerovo View Post
    Originally Posted by jagabo View Post
    And comparing only I frames won't tell you much. Some encoders use higher quality on I frames (relative to P and B frames), some lower. And it may vary depending on the video, bitrate restrictions, etc.
    so what's the right way to comparing two frames?
    Same answer as I gave you in the other forum ;.)
    >>>
    I am not sure what you are trying to achieve, but first of, for comparing encoder quality you have normally to make sure that the video file sizes of the different encodes (AVC, hevc, etc.) are the same (means equal compression strength). Otherwise the comparison is meaningless as you wouldn't compare apples with apples.
    And keep in mind that a comparison based on some single frames does not tell too much about the perceived real-time playback experience. It can even be misleading.
    For frame-by-frame comparison I would suggest to interleave the clips and step through the interleaved frames on the PC. I am however not sure at the moment whether avisynth interleaving supports different formats and color spaces .….... you will probably have to convert the clips to the same colorspace and same resolution for interleaving.
    <<<
    Quote Quote  
  7. Originally Posted by Sharc View Post
    Originally Posted by rockerovo View Post
    Originally Posted by jagabo View Post
    And comparing only I frames won't tell you much. Some encoders use higher quality on I frames (relative to P and B frames), some lower. And it may vary depending on the video, bitrate restrictions, etc.
    so what's the right way to comparing two frames?
    Same answer as I gave you in the other forum ;.)
    >>>
    I am not sure what you are trying to achieve, but first of, for comparing encoder quality you have normally to make sure that the video file sizes of the different encodes (AVC, hevc, etc.) are the same (means equal compression strength). Otherwise the comparison is meaningless as you wouldn't compare apples with apples.
    And keep in mind that a comparison based on some single frames does not tell too much about the perceived real-time playback experience. It can even be misleading.
    For frame-by-frame comparison I would suggest to interleave the clips and step through the interleaved frames on the PC. I am however not sure at the moment whether avisynth interleaving supports different formats and color spaces .….... you will probably have to convert the clips to the same colorspace and same resolution for interleaving.
    <<<
    oh , for the file size , they all the same size, i set bitrate target , then I calculate ssim,psnr,vmaf , but now when I'm trying to get image comparison I can't get it right, I think I comparing different frame types, that's why I'm asking how I can manage to get the same frame type for all encoders.
    sorry for my bad English
    Quote Quote  
  8. Originally Posted by rockerovo View Post

    ...let us say I want to encode video with only 200 frames, is this command the right way to get I frame on 0,50,100,150,200 # of frame


    for x264 :

    --keyint 50 , --min-keyint 50 --no-scenecut
    For x264 yes, you can force I frames every 50 frames like that, but I can't say anything about the other encoders.

    But still, I don't see the point in comparing I frames only. What is in between the I frames (P, B frames) is at least as important. Try interleaving and step through the frames.
    Quote Quote  



Similar Threads

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