• Fiona Glaser's avatar
    Periodic intra refresh · cde39046
    Fiona Glaser authored
    Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes.
    Attempt to hide the visual appearance of the intra bar when --no-psy isn't set.
    Enabled with --intra-refresh.
    The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame.
    Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding.
    Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%.
    x264 is now the best free software low-latency video encoder in the world.
    
    Accordingly, change the API to add b_keyframe to the parameters present in output pictures.
    Calling applications should check this to see if a frame is seekable, not the frame type.
    
    Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work.
    Also fix a major bug in sliced-threads VBV handling.
    Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing.
    Also simplify ratecontrol's checking of first pass options.
    Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames.
    cde39046
common.h 24 KB