1. 03 Jul, 2010 1 commit
  2. 14 Jun, 2010 1 commit
    • Anton Mitrofanov's avatar
      Fix regression in r1501. · 4fda9276
      Anton Mitrofanov authored
      Could cause slightly incorrect analysis in rare cases, but no serious encoding issues.
      Also shut up gcc warning about pels_v.
  3. 09 Jun, 2010 2 commits
  4. 02 Jun, 2010 1 commit
  5. 31 May, 2010 1 commit
  6. 26 May, 2010 1 commit
  7. 06 May, 2010 2 commits
    • Fiona Glaser's avatar
      Don't force row QPs to integer values with VBV · 9ce27834
      Fiona Glaser authored
      VBV should no longer raise the bitrate of the video.  That is, at a given quality level or average bitrate, turning on VBV should only lower the bitrate.
      This isn't quite true if adaptive quant is off, but nobody should be doing that anyways.
      Also may result in slightly more accurate per-row VBV ratecontrol.
    • Fiona Glaser's avatar
      Deduplicate asm constants, automate name prefixing · 311c4bb1
      Fiona Glaser authored
      Auto-prefix global constants with x264_ in cextern.
      Eliminate x264_ prefix from asm files; automate it in cglobal.
      Deduplicate asm constants wherever possible to save data cache (move them to a new const-a.asm).
      Remove x264_emms() entirely on non-x86 (don't even call an empty function).
      Add cextern_naked for a non-prefixed cextern (used in checkasm).
  8. 23 Apr, 2010 1 commit
  9. 10 Apr, 2010 1 commit
    • Alex Wright's avatar
      Early termination in 16x8/8x16 search · 788b8b7e
      Alex Wright authored
      Combine the actual cost of the first partition with the predicted cost of the second to avoid searching the second when possible.
      Reduces the number of times the second partition is searched by up to ~75% in non-RD mode, ~10% in RD mode.
      Negligible effect on compression.
  10. 05 Apr, 2010 3 commits
  11. 31 Mar, 2010 2 commits
  12. 27 Mar, 2010 8 commits
    • Fiona Glaser's avatar
      New "superfast" preset, much faster intra analysis · 0b720fee
      Fiona Glaser authored
      Especially at the fastest settings, intra analysis was taking up the majority of MB analysis time.
      This patch takes a ton more shortcuts at the fastest encoding settings, decreasing compression 0.5-5% but improving speed greatly.
      Also rearrange the fastest presets a bit: now we have ultrafast, superfast, veryfast, faster.
      superfast is the old veryfast (but much faster due to this patch).
      veryfast is between the old veryfast and faster.
      faster is the same as before except with MB-tree on.
      Encoding with subme >= 5 should be unaffected by this patch.
    • Fiona Glaser's avatar
    • Fiona Glaser's avatar
      Much faster non-RD intra analysis · e77bbb6a
      Fiona Glaser authored
      Since every pred mode costs at least 1 bit, move that part into the initial SATD cost.
      This lets i4x4/i8x8 analysis terminate earlier.
      If the cost of the predicted mode is less than the cost of signalling any other mode, early-terminate the analysis.
    • Fiona Glaser's avatar
      Split up analyse_init · 137e233f
      Fiona Glaser authored
      Save some time by avoiding some unnecessary inits and moving other parts to per-thread init.
    • Fiona Glaser's avatar
      Make a bunch of small functions ALWAYS_INLINE · 8b4cca0e
      Fiona Glaser authored
      Probably no real effect for now, but needed for the next patch.
    • Fiona Glaser's avatar
      Much more accurate B-skip detection at 2 < subme < 7 · 47092e82
      Fiona Glaser authored
      Use the same method that x264 uses for P-skip detection.
      This significantly improves quality (1-6%), but at a significant speed cost as well (5-20%).
      It also may have a very positive visual effect in cases where the inaccurate skip detection resulted in slightly-off vectors in B-frames.
      This could cause slight blurring or non-smooth motion in low-complexity frames at high quantizers.
      Not all instances of this problem are solved: the only universal solution is non-locally-optimal mode decision, which x264 does not currently have.
      subme >= 7 or <= 2 are unaffected.
    • Fiona Glaser's avatar
    • Alex Wright's avatar
      Mixed-refs support for B-frames · 1f9393eb
      Alex Wright authored
      Small speed cost, usually a few percent at most. Generally has lowest cost in cases when it isn't very useful. Up to ~2% better compression overall on highly complex sources.
      Also fix a few minor bugs in B-frame analysis and various bits of cleanup.
  13. 26 Feb, 2010 1 commit
  14. 23 Feb, 2010 2 commits
  15. 15 Feb, 2010 3 commits
  16. 14 Feb, 2010 1 commit
    • Fiona Glaser's avatar
      Improve bidir search, fix some artifacts in fades · 29dd5ef2
      Fiona Glaser authored
      Modify analysis to allow bidir to use different motion vectors than L0/L1.
      Always try the <0,0,0,0> motion vector for bidir.
      Eliminates almost all errant motion vectors in fades.
      Slightly improves PSNR as well (~0.015db).
  17. 30 Jan, 2010 1 commit
  18. 21 Jan, 2010 2 commits
  19. 20 Jan, 2010 1 commit
    • Fiona Glaser's avatar
      Various bugfixes and tweaks in analysis · 5bcf1378
      Fiona Glaser authored
      Fix the oldest-ever bug in x264: b16x8 analysis used the wrong width for predict_mv.
      Fix cache_ref calls for slightly better MV prediction in bsub16x16 analysis.
      Make B-partition analysis consider reference frame costs.
      Various other minor changes.
      Overall very slightly improved mode decision and motion search in B-frames.
  20. 14 Jan, 2010 5 commits
    • Fiona Glaser's avatar
      Faster psy-trellis init · 62ece1c2
      Fiona Glaser authored
      Remove some unncessary zigzags.
    • Fiona Glaser's avatar
      Simplfy intra mode availability handling · 85dc3f9f
      Fiona Glaser authored
      Slightly faster, 1.5kb smaller binary size, less code.
    • David Conrad's avatar
      Fix x264 compilation on Apple GCC · aa48c1fb
      David Conrad authored
      Apple's GCC stupidly ignores the ARM ABI and doesn't give any stack alignment beyond 4.
    • Fiona Glaser's avatar
      Faster weightp motion search · fd1cf294
      Fiona Glaser authored
      For blind-weight dupes, copy the motion vector from the main search and qpel-refine instead of doing a full search.
      Fix the p8x8 early termination, which had unexpected results when combined with blind weighting.
      Overall, marginally reduces compression but should potentially improve speed by over 5%.
    • 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.