1. 07 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Macroblock-tree ratecontrol · 835ccc3c
      Fiona Glaser authored
      On by default; can be turned off with --no-mbtree.
      Uses a large lookahead to track temporal propagation of data and weight quality accordingly.
      Requires a very large separate statsfile (2 bytes per macroblock) in multi-pass mode.
      Doesn't work with b-pyramid yet.
      Note that MB-tree inherently measures quality different from the standard qcomp method, so bitrates produced by CRF may change somewhat.
      This makes the "medium" preset a bit slower.  Accordingly, make "fast" slower as well, and introduce a new preset "faster" between "fast" and "veryfast".
      All presets "fast" and above will have MB-tree on.
      Add a new option, --rc-lookahead, to control the distance MB tree looks ahead to perform propagation analysis.
      Default is 40; larger values will be slower and require more memory but give more accurate results.
      This value will be used in the future to control ratecontrol lookahead (VBV).
      Add a new option, --no-psy, to disable all psy optimizations that don't improve PSNR or SSIM.
      This disables psy-RD/trellis, but also other more subtle internal psy optimizations that can't be controlled directly via external parameters.
      Quality improvement from MB-tree is about 2-70% depending on content.
      Strength of MB-tree adjustments can be tweaked using qcompress; higher values mean lower MB-tree strength.
      Note that MB-tree may perform slightly suboptimally on fades; this will be fixed by weighted prediction, which is coming soon.
      835ccc3c
  2. 05 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Various 1-pass VBV tweaks · 93cc2893
      Fiona Glaser authored
      Make predictors have an offset in addition to a multiplier.
      This primarily fixes issues in sources with lots of extremely static scenes, such as anime and CGI.
      We tried linear regressions, but they were very unreliable as predictors.
      Also allow VBV to be slightly more aggressive in raising QPs to avoid not having enough bits left in some situations.
      Up to 1db improvement on some clips.
      93cc2893
  3. 29 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Fix another 10L in QPRD · 1d735afb
      Fiona Glaser authored
      An entry in subpel_iterations was missing.
      I have no idea how QPRD was working at all without this change.
      1d735afb
  4. 28 Jul, 2009 3 commits
  5. 27 Jul, 2009 2 commits
  6. 26 Jul, 2009 4 commits
    • Fiona Glaser's avatar
      Fix 10l in QPRD · 11f50441
      Fiona Glaser authored
      Trellis used wrong lambda with trellis=1
      11f50441
    • Fiona Glaser's avatar
      Fix a nondeterminism with threads and subme>7 · fa3b8139
      Fiona Glaser authored
      Also add a few more checks to eliminate the need for spel_border.
      fa3b8139
    • Fiona Glaser's avatar
      Add QPRD support as subme=10 · 4304c427
      Fiona Glaser authored
      Refactor trellis lambda selection to be done in analyse_init instead of in trellis.
      This will allow for more easy adaption of lambda later on; for now it allows constant lambda across variable QPs.
      QPRD is only available with adaptive quantization enabled and generally improves SSIM and visual quality.
      Additionally, weight the SSD values from RD based on the relative QP offset for chroma; helps visually at high QPs where chroma has a lower QP than luma.
      This fixes some visual artifacts created by QPRD at high QPs.
      Note that this generally hurts PSNR and SSIM, and so is only on when psy-RD is on.
      4304c427
    • Fiona Glaser's avatar
      SSSE3 cachesplit workaround for avg2_w16 · d68f3b07
      Fiona Glaser authored
      Palignr-based solution for the most commonly used qpel function.
      1-1.5% faster overall on Core 2 chips.
      d68f3b07
  7. 22 Jul, 2009 1 commit
  8. 20 Jul, 2009 1 commit
    • Anton Mitrofanov's avatar
      New AQ algorithm option · 2e1db1f6
      Anton Mitrofanov authored
      "Auto-variance" uses log(var)^2 instead of log(var) and attempts to adapt strength per-frame.
      Generates significantly better SSIM; on by default with --tune ssim.
      Whether it generates visually better quality is still up for debate.
      Available as --aq-mode 2.
      2e1db1f6
  9. 17 Jul, 2009 1 commit
  10. 12 Jul, 2009 1 commit
  11. 10 Jul, 2009 1 commit
  12. 09 Jul, 2009 1 commit
  13. 07 Jul, 2009 3 commits
  14. 03 Jul, 2009 2 commits
    • Fiona Glaser's avatar
      Update Gabriel's email address in AUTHORS · 8878778c
      Fiona Glaser authored
      8878778c
    • Fiona Glaser's avatar
      Early termination for chroma encoding · 205a032c
      Fiona Glaser authored
      Faster chroma encoding by terminating early if heuristics indicate that the block will be DC-only.
      This works because the vast majority of inter chroma blocks have no coefficients at all, and those that do are almost always DC-only.
      Add two new helper DSP functions for this: dct_dc_8x8 and var2_8x8.  mmx/sse2/ssse3 versions of each.
      Early termination is disabled at very low QPs due to it not being useful there.
      Performance increase is ~1-2% without trellis, up to 5-6% with trellis=2.
      Increase is greater with lower bitrates.
      205a032c
  15. 26 Jun, 2009 3 commits
  16. 22 Jun, 2009 1 commit
    • Fiona Glaser's avatar
      Various CABAC optimizations and cleanups · 90bec46b
      Fiona Glaser authored
      Faster CABAC CBF context calculation for inter blocks.
      Add x264_constant_p(), will probably be useful in the future as well.
      Simpler subpartition functions.
      Clean up and optimize mvd_cpn a bit more.
      Various other minor optimizations.
      90bec46b
  17. 20 Jun, 2009 1 commit
  18. 19 Jun, 2009 4 commits
  19. 11 Jun, 2009 2 commits
  20. 27 May, 2009 4 commits
  21. 25 May, 2009 1 commit
  22. 24 May, 2009 1 commit
    • Fiona Glaser's avatar
      Fix 10L in r1155 · eb375947
      Fiona Glaser authored
      Broke --me esa/tesa due to forgetting to add handling for x264_cost_mv_fpel.
      eb375947