1. 14 Sep, 2009 1 commit
    • Fiona Glaser's avatar
      Make MV costs global instead of static · b1eac265
      Fiona Glaser authored
      Fixes some extremely rare threading race conditions and makes the code cleaner.
      Downside: slightly higher memory usage when calling multiple encoders from the same application.
      b1eac265
  2. 13 Sep, 2009 2 commits
  3. 09 Sep, 2009 1 commit
  4. 07 Sep, 2009 1 commit
    • Fiona Glaser's avatar
      Improve x264 help · 02e662e1
      Fiona Glaser authored
      Now has three help options: --help, --longhelp, and --fullhelp.
      --help only shows the most basic options; most users should not need more than these.
      Add usage examples.
      Fix typo in a comment.
      02e662e1
  5. 06 Sep, 2009 3 commits
  6. 02 Sep, 2009 3 commits
    • Steven Walters's avatar
      Change priority handling on some OSs · bc120190
      Steven Walters authored
      Instead of setting the lookahead thread to max priority, lower all the other threads' priorities instead.
      This is particularly useful when the "max priority" is "realtime", as in Windows, which can cause some problems.
      bc120190
    • Steven Walters's avatar
      Threaded lookahead · 6940dcae
      Steven Walters authored
      Move lookahead into a separate thread, set to higher priority than the other threads, for optimal performance.
      Reduces the amount that lookahead bottlenecks encoding, greatly increasing performance with lookahead-intensive settings (e.g. b-adapt 2) on many-core CPUs.
      Buffer size can be controlled with --sync-lookahead, which defaults to auto (threads+bframes buffer size).
      Note that this buffer is separate from the rc-lookahead value.
      Note also that this does not split lookahead itself into multiple threads yet; this may be added in the future.
      Additionally, split frames into "fdec" and "fenc" frame types and keep the two separate.
      This split greatly reduces memory usage, which helps compensate for the larger lookahead size.
      Extremely special thanks to Michael Kazmier and Alex Giladi of Avail Media, the original authors of this patch.
      6940dcae
    • Fiona Glaser's avatar
      Force a link error in case of incompatible API · 7df6f5d6
      Fiona Glaser authored
      This is because the number of bug reports due to miscompiled ffmpeg builds is reaching critical mass.
      The name of x264_encoder_open is now #defined based on the current X264_BUILD.
      Note that this changes the calling convention required for dlopen, but not for ordinary calls to x264_encoder_open.
      7df6f5d6
  7. 31 Aug, 2009 3 commits
    • Loren Merritt's avatar
      Faster me=tesa · 4767b0e1
      Loren Merritt authored
      But it still spends all too much time in me_search_ref rather than asm.
      4767b0e1
    • Fiona Glaser's avatar
      Multi-slice encoding support · 4ccbb199
      Fiona Glaser authored
      Slicing support is available through three methods (which can be mixed):
      --slices sets a number of slices per frame and ensures rectangular slices (required for Blu-ray).  Overridden by either of the following options:
      --slice-max-mbs sets a maximum number of macroblocks per slice.
      --slice-max-size sets a maximum slice size, in bytes (includes NAL overhead).
      Implement macroblock re-encoding support to allow highly accurate slice size limitation.  Might be useful for other things in the future, too.
      4ccbb199
    • Fiona Glaser's avatar
      Fix a valgrind warning in b-adapt 2 · 57223706
      Fiona Glaser authored
      57223706
  8. 28 Aug, 2009 3 commits
  9. 27 Aug, 2009 4 commits
  10. 24 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      2-pass VBV fixes · 918808f8
      Fiona Glaser authored
      Properly run slicetype frame cost with 2pass + MB-tree.
      Slash the VBV rate tolerance in 2-pass mode; increasing it made sense for the highly reactive 1-pass VBV algorithm, but not for 2-pass.
      2-pass's planned frame sizes are guaranteed to be reasonable, since they are based on a real first pass, while 1-pass's, based on lookahead SATD, cannot always be trusted.
      918808f8
  11. 23 Aug, 2009 1 commit
    • David Conrad's avatar
      GSOC merge part 2: ARM stack alignment · ca7da1ae
      David Conrad authored
      Neither GCC nor ARMCC support 16 byte stack alignment despite the fact that NEON loads require it.
      These macros only work for arrays, but fortunately that covers almost all instances of stack alignment in x264.
      ca7da1ae
  12. 21 Aug, 2009 1 commit
  13. 20 Aug, 2009 1 commit
  14. 19 Aug, 2009 4 commits
    • Fiona Glaser's avatar
      Improve QPRD · bde792fe
      Fiona Glaser authored
      Always check the last macroblock's QP, even if the normal search doesn't reach it.
      Raise the failure threshold when moving towards the last macroblock's QP.
      0.2-1% improved compression.
      bde792fe
    • Fiona Glaser's avatar
      Fix MB-tree with keyint<3 · 4e824bbc
      Fiona Glaser authored
      Also slightly improve VBV keyint handling.
      4e824bbc
    • Fiona Glaser's avatar
      Fix bug in VBV lookahead + no MB-tree · 678b317a
      Fiona Glaser authored
      I-frames need to have VBV lookahead run on them as well.
      678b317a
    • Fiona Glaser's avatar
      Add support for frame-accurate parameter changes · c83699f1
      Fiona Glaser authored
      Parameter structs can now be passed with individual frames.
      The previous method would only change the parameter of what was currently being encoded, which due to delay might be very far from an intended exact frame.
      Also add support for changing aspect ratio.  Only works in a stream with repeating headers and requires the caller to force an IDR to ensure instant effect.
      c83699f1
  15. 18 Aug, 2009 1 commit
  16. 17 Aug, 2009 2 commits
    • Fiona Glaser's avatar
      Fix two bugs in QPRD · ba0c0351
      Fiona Glaser authored
      QPRD could in some cases force blocks to skip when they shouldn't be ~(+0.01db)
      Force QPRD to abide by qpmin/qpmax restrictions.
      ba0c0351
    • Fiona Glaser's avatar
      Lookahead VBV · 30a82c75
      Fiona Glaser authored
      Use the large-scale lookahead capability introduced in MB-tree for ratecontrol purposes.
      (Does not require MB-tree, however.)
      Greatly improved quality and compliance in 1-pass VBV mode, especially in CBR; +2db OPSNR or more in some cases.
      Fix some other bugs in VBV, which should improve non-lookahead mode as well.
      Change the tolerance algorithm in row VBV to allow for more significant mispredictions when buffer is nearly full.
      Note that due to the fixing of an extremely long-standing bug (>1 year), bitrates may change by nontrivial amounts in CRF without MB-tree.
      30a82c75
  17. 14 Aug, 2009 2 commits
    • Fiona Glaser's avatar
      Fix bug in b-adapt 1 · 50f7afcd
      Fiona Glaser authored
      B-adapt 1 didn't use more than MAX(1,bframes-1) B-frames when MB-tree was off.
      50f7afcd
    • Fiona Glaser's avatar
      Fix a potential failure in VBV · e586d699
      Fiona Glaser authored
      If VBV does underflow, ratecontrol could be permanently broken for the rest of the clip.
      Revert part of the previous VBV changes to fix this.
      e586d699
  18. 13 Aug, 2009 3 commits
  19. 09 Aug, 2009 2 commits
    • Loren Merritt's avatar
      simd part of x264_macroblock_tree_propagate. · e9ff8c4b
      Loren Merritt authored
      1.6x faster on conroe.
      e9ff8c4b
    • Loren Merritt's avatar
      MB-tree fixes: · 5599c478
      Loren Merritt authored
      AQ was applied inconsistently, with some AQed costs compared to other non-AQed costs. Strangely enough, fixing this increases SSIM on some sources but decreases it on others. More investigation needed.
      Account for weighted bipred.
      Reduce memory, increase precision, simplify, and early terminate.
      5599c478
  20. 08 Aug, 2009 1 commit